Software Project Lab
Project Development Phase
Overview
Working in teams to develop a complete software solution for real clients
Learning Objectives
- Build production-quality software
- Work directly with stakeholders
- Apply professional development practices
- Manage real project constraints
- Deliver working solutions iteratively
Learning Resources
Previous Projects
Past student projects
MIT
Software Project
Project development guide
ETH Zürich
CS210 Project Guide
Industry project framework
Stanford
Project Management
Project tracking tools
GitHub
Git Workflow
Team development workflow
Git
Automated Workflow
Continuous integration
GitHub Actions
Code Analysis
Quality standards
SonarQube
Testing Framework
Automated testing
Jest
API Documentation
API documentation
Swagger
Containerization
Deployment setup
Docker
Practical Applications
Full Stack Development
Complete system implementation
Example: Building and deploying a web application
Quality Assurance
Professional quality standards
Example: Implementing comprehensive testing
DevOps
Development operations
Example: Setting up CI/CD pipeline
Practice Problems
- Implement core features
- Set up development pipeline
- Create automated tests
- Deploy to production
Client Interaction
Overview
Professional communication and collaboration with project stakeholders
Learning Objectives
- Gather requirements effectively
- Present technical progress
- Handle feedback professionally
- Manage client expectations
- Document decisions and changes
Learning Resources
Practical Applications
Requirements Engineering
Gathering requirements
Example: Conducting client interviews
Project Management
Timeline and deliverables
Example: Creating project roadmap
Technical Communication
Progress reporting
Example: Weekly status meetings
Practice Problems
- Document requirements
- Create progress reports
- Handle change requests
- Present deliverables
Final Delivery
Overview
Project completion, documentation, and handover
Learning Objectives
- Finalize production deployment
- Complete documentation
- Present final solution
- Train stakeholders
- Plan maintenance handover
Learning Resources
Practical Applications
System Deployment
Production release
Example: Final deployment process
Knowledge Transfer
Project handover
Example: Creating maintenance guides
Presentation
Final demonstration
Example: Project showcase event
Practice Problems
- Complete deployment
- Finalize documentation
- Present solution
- Train users