Software Engineering — IITM BS Degree
A community-driven collection of SE project documentation, curated readings, and resources from the IIT Madras BS Program Software Engineering Course.
Get Started with the SE Project Browse Readings Browse Resources
Course Philosophy
The Software Engineering project is the cornerstone of the SE course at IIT Madras. While the project theme varies each term, the core learning outcome remains consistent: students experience building a complete web application from scratch within a team, balancing technical, ethical, and user-centric decisions.
What Students Gain
- Modern Web Technologies — Hands-on experience with frontend frameworks (React, Vue), backend development (Flask, Node.js), REST APIs, authentication, testing, and deployment
- Team Collaboration — Task planning in sprints, role distribution (Scrum Master, QA Lead, Frontend/Backend Dev), working under deadlines and scope constraints
- Product Thinking — Gathering and prioritizing user needs, converting requirements into features, balancing feasibility with user impact
- Project Management — Sprint planning with tools like Jira, Trello, and GitHub; issue tracking, code reviews, and version control
- Adaptability — Navigating vague requirements, reading documentation, prototyping fast, and learning from bugs and peer review
- Communication — Writing clear documentation, presenting demos, collaborating across technical and non-technical roles
Career Relevance
This project builds skills directly applicable to roles in:
| Role | Key Skills Developed |
|---|---|
| Software Engineer | Git, code reviews, testing, component-based design |
| Web Developer | UI development, API integration, responsive layouts |
| Data Analyst / Backend Dev | Data structuring, backend logic, database models |
| Product Manager / UX Designer | User stories, wireframes, stakeholder management |
Read more about motivation and learning outcomes
How the Project Works
The SE project follows an Agile methodology with structured milestones, team roles, and client interactions.
Team Structure
Teams are formed at the beginning of each term. Each team assigns roles:
- Project Architect — Oversees technical design and architecture decisions
- Scrum Master — Facilitates sprints, stand-ups, and removes blockers
- Frontend Developer — Builds the user interface
- Backend Developer — Implements server-side logic and APIs
- Tester — Ensures quality through testing and validation
The 6 Milestones
| Milestone | Focus |
|---|---|
| 1. User Requirements | Gather and document user needs |
| 2. UI Design & Wireframes | Design the interface and user flows |
| 3. Scheduling, Design & Prototypes | Plan sprints and build initial prototypes |
| 4. API Development & Integration | Build and connect backend APIs |
| 5. Test Suite & Evaluation | Write tests and validate functionality |
| 6. Final Submission & Presentation | Submit deliverables and present to evaluators |
Evaluation
Projects are assessed through multiple lenses:
- Instructor evaluation — Quality and functionality at each milestone
- Peer evaluation — Students review other teams’ work (after milestones 3 & 6)
- Client evaluation — TAs assess progress, process adherence, and communication
- Final presentation — Live demo and Q&A
The project contributes 30% of the final course grade.
Full workflow details · Evaluation criteria · FAQ · Support & tools
Project Statements by Term
Each term presents a unique problem statement, reflecting evolving industry needs and technologies.
| Term | Theme | Problem Statement |
|---|---|---|
| Sept 2023 | Online Support Ticket System | View |
| Jan 2024 | Ticket System with Discourse & Webhooks | View |
| May 2024 | GenAI in Programming Learning Environments | View |
| Sept 2024 | Tracking Student Progress in Software Projects | View |
| Jan 2025 | AI Agent for Academic Guidance | View |
| May 2025 | Digital Solutions for Senior Citizens / Life Skills App | View |
| Sept 2025 | Generative AI for Industry-Specific Challenges | View |
Best Projects
Outstanding student projects with demo videos and source code, serving as benchmarks for future teams.
Curated Readings
Foundational books, academic papers, and in-depth articles for SE students and practitioners.
Featured Books
| Title | Author | Why Read It |
|---|---|---|
| Clean Code | Robert C. Martin | Foundational guide to writing readable, maintainable code |
| The Mythical Man-Month | Frederick P. Brooks Jr. | Classic on team dynamics — why adding people to a late project makes it later |
| The Phoenix Project | Gene Kim et al. | A novel about IT/DevOps transformation that makes complex concepts accessible |
| Accelerate | Nicole Forsgren et al. | Research-backed insights into what makes high-performing software teams |
Browse all books · Academic papers · Articles & tutorials
Featured Papers & Articles
- No Silver Bullet — Fred Brooks on why there’s no single breakthrough for software productivity
- The Twelve-Factor App — Methodology for building modern, scalable web applications
- Google Engineering Practices Guide — Practical code review advice for teams
- The Cathedral and the Bazaar — Influential essay on open-source development models
Resources
Newsletters, blogs, podcasts, and tools to stay current with software engineering.
Newsletters & Blogs
| Resource | Type | Description |
|---|---|---|
| The Pragmatic Engineer | Newsletter | Deep dives into engineering culture and Big Tech practices |
| ByteByteGo | Newsletter | System design and architecture explained visually |
| Martin Fowler’s Blog | Blog | The gold standard for SE writing — architecture, refactoring, Agile |
| Joel on Software | Blog | Classic essays on software development and management |
Podcasts
| Podcast | Description |
|---|---|
| Software Engineering Radio | Wide range of SE topics with expert guests |
| The Changelog | Conversations with open-source developers |
| Syntax | Web development topics — directly relevant to SE project tech stacks |
| Software Engineering Daily | Daily technical interviews on architecture, DevOps, AI |
Tools for SE Projects
| Tool | Purpose |
|---|---|
| Figma | UI/UX design and wireframing |
| Postman | API development and testing |
| Excalidraw | Architecture diagrams and quick sketches |
| Ollama | Run open-source LLMs locally for GenAI projects |
All newsletters · All blogs · All podcasts · Videos & talks · All tools
Contributing
We welcome contributions from IITM BS students and the broader SE community! Here’s how you can help:
- Suggest a resource — Use the issue template to recommend a book, paper, blog, podcast, or tool
- Submit a pull request — Add or improve content directly
- Report a broken link — Use the broken link template
- Join the discussion — Share ideas in GitHub Discussions
- Give feedback — Use the feedback template
See CONTRIBUTING.md for detailed guidelines.