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.

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


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:

See CONTRIBUTING.md for detailed guidelines.