Due Date: 2025-03-11 4:15PM
We will spend the second half of the semester working on large-scale web applications in teams of 5-8 students. The primary requirements for the Project are technical (see the list below). There are relatively few constraints on the goal/content/purpose of the application. Think broadly!
Project technical requirements:
The scope is always hard to estimate. However, with 5-8 students over 6 weeks, your team’s total capacity should be over 300 person-hours. Scope your project with that capacity in mind. You can build a substantial application in 300+ hours (though we should acknowledge that the math is not a simple as adding up the number of hours each developer can contribute...)!
At this stage, we are looking for a collection of proposals. Consider this optional assignment a Request-for-Proposals (RFP). You are encouraged but not required to submit a proposal. We will vet the proposals for suitability and scope before sending them out to the class.
If you wish to propose a project, please prepare short written proposal, approximately one page in length (no less than 0.75 page and no more than 2 pages). E-mail your proposal to the instructors. You proposal should contain the following information.
What, if any, external resources, such as APIs, do you plan to incorporate
Incorporating an external API is not discouraged, as long as it is “self-serve”. For example, you can automatically obtain a Google Maps API key and the API has a free quota that is more than sufficient for a class project. In contrast, any API that requires “manual” approval by the provider will likely be a problem. You only have 6 weeks to complete the project, and so waiting 3 weeks for API approval is not practical.
The proposal is not a contract. We expect the projects to evolve (often substantially). That said, your proposal needs to be specific enough (and “thought through” enough) that you and we can estimate the scope and your classmates have a good idea of that they would be signing up to do. A great proposal will provide a clear starting point for your first development iteration (“sprint”).
There is no one phenotype for a successful project, your teamwork and development process is more important to the success of your project than the topic. React is most useful in highly interactive applications (think Google Maps) and so projects with more interactive UIs will take better advantage of its capabilities.
Some of the more successful projects have included:
A strange as it sounds, proposing a project that you as the proposer are too passionate about is a recurring pitfall. Remember this is team effort where everyone has equal responsibility and equal “say”. The proposer is not the product owner, or ultimate decider about the direction of the project. Differences between the proposer’s vision/goals and where the rest of the team wants to go has been a previous source of conflict.
Another potential pitfall is the all-or-nothing project. In keeping with our iterative/incremental approach, can you see a path that includes building new features onto a functioning core so that you can build a minimal viable product instead of something that is ambitious but ultimately non-functional.