Project Requirements
The objective of your project is to develop a web application with a user-friendly interface, functional back-end logic, and database connectivity as a team.
Project Ideas
These are several proposed project ideas for teams to choose from. However, you are also welcome to select a project of your own choice. Regardless of the project idea you pursue, you must ensure that it meets the Technical Requirements outlined below.
For some of the suggested ideas, we have included a Project Requirements Document (PRD). You may choose to implement slightly different or fewer features than those described in the PRD (this should be described in your Team Charter). For other project ideas, no PRD is provided. In these cases, you should use the inspiration project to determine the requirements
- Artful: A Custom Art Web Marketplace
- X/Twitter Clone: Short-form blogging platform with ability to follow users and view feeds aggregating posts from everyone the user is following.
- Stack Overflow Clone: Question-answering platform where users can post questions and answer other user's questions.
- LinkedIn Clone: Social network emphasizing job listings and career development.
Technical Requirements
Below are the technical and collaboration requirements for the project, including a description of each of the deliverables that you will submit at the end of the term when the project is complete. Throughout the term, you will submit additional artifacts to document your experience and learning. These are described in each respective week's materials. For assessment rubrics, please also refer to the submission page for the respective item.
The provided starter project provides a basic web application with a user registration and login system, a simple user profile.
-
Front-End (User Interface)
- Develop a clean and intuitive user interface using HTML, CSS, and JavaScript.
- Ensure the UI provides a high quality user experience that is bug free and intuitive to use.
- Implement at least three interactive features (e.g., forms, navigation menus, modals).
-
Back-End Logic
- Utilize a server-side language (e.g., Python with Flask, JavaScript with Express) for back-end logic.
- Implement at least four distinct functionalities (e.g., data processing, API integration) beyond those already provided in the starter project.
- Ensure proper error handling and data validation.
-
Database Connectivity
- Integrate a relational database (e.g., Sqlite, MySQL, PostgreSQL).
- Design a database schema with at two three related models/tables beyond those already provided in the starter project.
- Implement CRUD (Create, Read, Update, Delete) operations for interacting with the database.
-
Minimum Feature Set
- User Registration & Login System
- At least two forms to collect data from the user and store it in the database beyond those already provided in the starter project.
- Features that dynamically display data from the database based on user input.
-
Code Quality and Documentation
- Follow coding standards and best practices for readability and maintainability.
- Use version control (i.e., Git) with meaningful commit messages and demonstrating contributions from all team members.
- Include a README file documenting the setup, configuration, and usage instructions.
- Organize project components for maintainability and clarity.
Collaboration and Project Management
-
Team Collaboration
- Regularly hold synchronous team meetings (at least once every two weeks) to discuss progress, challenges, and next steps.
- Provide standup updates to peer team members at least 3 times per week.
-
Project Management
- Use a project management tool (i.e., GitHub Projects) to track progress, plan tasks, and assign tasks.
- Implement a basic SCRUM or Agile methodology with weekly sprints and reviews.
Deliverables
The below artifacts are submitted throughout and at the conclusion of the term. For complete details about the requirements and the assessment criteria for each artifact, refer to that artifact's Anchor page.
-
Sprint Reports
- Every two weeks throughout the term, your team will submit a sprint report updating your instructor in the progress of your project.
- This report will outline what was accomplished, what is planned next, and share insights gained so far.
-
Personal Reflections
- These reflections will occur approximately very two weeks and at the conclusion of the project.
- Reflect on your specific contributions to the project. What were the tasks you handled, and what skills did you apply or develop?
- Discuss any challenges or obstacles you encountered during the project. How did you overcome these challenges? What did you learn from these experiences?
- Share your experience working in a team. How did you collaborate with your teammates? Reflect on any teamwork challenges and how they were resolved.
- Reflect on the technical skills you developed or enhanced during this project. Which aspects of web development did you find most interesting or challenging?
- Evaluate your experience with project management and organization. How did you manage your time, and what project management tools or strategies did you find effective?
- Evaluate the contributions and engagement from your team members.
-
MVP Demonstration
- A demonstration of your web application mid-way through the term (Week 5) that you will present to the class.
- You will have 5 minutes to discuss the problem your project solves, demonstrate the features in the MVP, and discuss what is coming next.
- You should have 35% of the deliverables completed by this point.
-
Final Web Application
- A working web application hosted on a web server (e.g., Render, Vercel, Heroku).
-
Final Project Implementation
- A code repository on GitHub with full source code and documentation.
-
Final Project Presentation
- A final presentation outlining the project’s features, challenges faced, and learnings.
- Presented during the final week's class session.
-
Final Project Demonstration
- A video demonstration of the features of the web application (not to exceed 5 minutes).
Assessment Criteria
More details about the specific assessments criteria and evaluations are found on the submission page for each respective item. In general, the following factors will be evaluated:
- Functionality and completeness of the web application.
- Code quality, including organization, readability, and adherence to best practices.
- Database design and effective use of database operations.
- Teamwork, collaboration, and adherence to project management practices.
- Quality of the final presentation and demonstration of the web application.
- Writing quality and thoroughness of the personal reflection.