IITM BS MAD 1 and MAD 2 Projects: Scope and Common Mistakes
By Editorial TeamLast reviewed
6 min readData ScienceOn this page
The MAD 1 and MAD 2 projects are the two project courses in the IITM BS Diploma in Programming. In MAD 1 you build a working web app with Flask and SQLite. In MAD 2 you build a more advanced app with a Vue.js frontend, token-based login and background jobs. Both are graded through vivas, so the app must work and you must be able to explain every part of it. Start early, and get the core features working before any extras.
The courses and projects
| Course | Code and credits | Prerequisite or corequisite |
|---|---|---|
| Modern Application Development I | BSCS2003, 4 credits | DBMS (BSCS2001) as corequisite |
| MAD I project | BSCS2003P, 2 credits | MAD I as corequisite |
| Modern Application Development II | BSCS2006, 4 credits | MAD I as prerequisite |
| MAD II project | BSCS2006P, 2 credits | MAD I project as prerequisite, MAD II as corequisite |
So each project runs with its theory course or after it. MAD 1 also needs DBMS done or in the same term. The full diploma layout is in the Diploma in Programming post.
What the MAD 1 project covers
The MAD 1 project page lists HTML, CSS, JavaScript, Flask, API implementation and SQLite for storage. It asks for a working web app built from scratch, with secure login, sensible data handling and API use. The theory course runs from web basics, through models, views and controllers, to REST APIs, security, testing and deployment.
What the MAD 2 project covers
MAD 2 builds on MAD 1. The project page lists Vue.js with Vue Router and Vuex, token-based authentication, background tasks with Celery and Redis, caching, and security topics such as CORS. The theory course covers JavaScript, Vue, state management, API design, asynchronous jobs, webhooks and performance.
How the projects are graded, in short
- Your app must first pass the app development check. Then your L1 viva is scheduled.
- Each term has two L1 cut-offs. Below the lower one, you resubmit within a few days. Below it twice, you redo the project next term.
- Between the two cut-offs, you answer some extra questions and get a D or E, which is a pass.
- Above the higher cut-off, you go on to an L2 viva for a better grade.
Details are in how projects are graded.
Scope: what to build first
Read the project statement for your term before you write any code. Requirements can change, so an old statement or a senior's repository is not a guide to what you must build now.
- List every required feature from the statement. Tick them off as you finish.
- Design the database first: tables, keys and relationships. Draw it on paper.
- Build the core flow end to end, even if it looks plain. Login, the main create, read, update and delete actions, and the main pages.
- Only then add the optional features, styling and extras.
- Leave the last week for testing, cleanup and viva practice.
Common mistakes
| Mistake | Why it hurts | What to do |
|---|---|---|
| Starting in the last three weeks | No time to fix bugs or resubmit | Start in week 1 of the term |
| Building extras before core features | The app may fail the basic check | Finish required features first |
| Using tools the statement does not allow | The app may not be accepted | Stick to the listed stack |
| No version control | One bad change can break everything | Use git and commit after each feature |
| App only runs on your laptop | Setup fails elsewhere | Keep a requirements file and clear run steps |
| Copying code you cannot explain | You cannot defend it in the viva, and it may be plagiarism | Write it yourself and understand each line |
Keep your repository private while the term is running, so no one can copy your work.
Preparing for the viva
- Be ready to walk through your database design and why you chose it.
- Know which route or function handles each feature, without searching.
- Practise explaining one feature from the button click down to the database and back.
- Make small changes to your own code at home without looking anything up. If you can do that, you understand it.
Deadlines, fees and checkpoints
The handbook says if you do not finish a project in the term you registered, you get an I grade and the fee carries to the next term. If it is still not done after that, you get a U and must pay again. A plagiarised project gets a U, may bring disciplinary action, and must be redone at full fee. The project fee is Rs 6,000 for students who joined from January 2026, and Rs 2,500 for earlier students, before any waiver. The honour code covers graded assignments too, so never share or copy answers.
Projects also count for your checkpoints. The handbook advises finishing milestone projects in the term before your milestone term, not in it. See diploma level checkpoints.
Common questions
Can I use React or Django instead of Vue or Flask?
The course pages name Flask for MAD 1 and Vue.js for MAD 2. Your term's project statement says what is allowed. If it does not say, ask on the course forum before you start.
Should I take MAD 1 and DBMS in the same term?
You can, since DBMS is a corequisite of MAD 1. Good database design makes the project easier, so keep up with DBMS weekly. Our DBMS and PDSA guide helps.
Can I show my MAD projects to employers?
Yes, after the term ends. A clean repository with a short readme and screenshots works well. See building a portfolio from your projects.
What pass grade can I expect if my viva goes badly?
If your L1 score falls between the two cut-offs, you still pass with a D or E. Below the lower cut-off you resubmit, so a weak viva is not always the end.
Official sources
Read next
- Building a Portfolio From Your IITM BS Projects
- IITM BS DBMS and PDSA: How to Prepare for Exams and OPPE
- IITM BS Machine Learning Courses: MLF, MLT and MLP Explained
- IITM BS Business Data Management (BSMS2001): Syllabus and Tips
- IITM BS Machine Learning Practice (BSCS2008): Syllabus and Tips
- IITM BS Machine Learning Techniques (BSCS2007): Syllabus and Tips