WebApp Requirements

Appropriateness

The app should be appropriate for use by adults, but viewable by all ages. The app should not encourage or enable violence or discrimination, intentionally or otherwise.

Theme

Knox or college-student oriented themes are encouraged. Try to create an app that you could envision using yourself.

Functionality

Your app should incorporate the following basic functionalities:

Login

Your app should have a login mechanism with a simple profile. Functionality of and/or access to parts of the site should be restricted only to users who are logged in.

Persistence

Your app should incorporate some element of persistence. Actions made by users should remain - eg, posting a comment, creating a list, etc.

You do not need to implement this until Sprint 2.

Backend or Serverless architecture

Your app should incorporate either a python backend or a “Serverless” architecture in order to transform or process some user requests remotely.

Frontend

Interface

Your app should incorporate interface elements from MUI.

Reactjs/Nextjs

Your app frontend should be written using reactjs and nextjs.

Public API calls

Your app should make API calls to some remote service not controlled by you. This remote call can be used to implement login functionality and/or persistence.

Availability

Your app should be available online starting from the end of Sprint 1. You should use free hosting from vercel.co for your frontend unless you have a demonstrable reason not to.

[Optional] Multi-user environment

Your app should create an environment that users can view content or interact with each other.

Scope

Make sure you take into account the time you have available for each sprint. You may have a grand plan, but you must make sure that you have a viable demo at the end of each sprint. By the same token, make sure that your app is of suitable complexity for 7-8 weeks of coding by 3 developers. I am estimating 1332=78 hours per sprint of work, including class time. This includes time you spend on your continuing mission, to solve strange new bugs. To seek out new APIs and new coding tools. To boldly develop what you have not developed before.

Original Work and Effort

While your app may be very heavily inspired by other apps, your app must be original work. By this I mean that you may not implement any app that has a publicly available tutorial. You may, however, use tutorials to help create small elements of your app or to connect existing elements. As a rough estimation, if a single tutorial walks you through more than a couple hours of work it is probably too much.