Project Overview

Purpose: This project allows you to use your creativity, apply web development concepts and usability theories to develop a dynamic web application. To help you prepare for your career and build your profile, you will choose what you want to build, with the project requirements constraining the features that must be used.


In practice, a web application is usually developed by teams of developers with diverse expertise. A web application can be developed from and consist of multiple diverse, distributed, and dynamically generated web components. They implement different parts of the application’s functionality and interact with each other to provide services to the users. To have experience in web software development, you will work in team and implement web components using several languages and technologies (full-stack).

Over the semester, you will learn how to use both client facing and backend languages and technologies to make a web application. You will work on each project sprint with a partner, and over the course of the semester, build a dynamic web application piece by piece. To maintain some cohesion between each sprint–and leave you with a final, portfolio-worthy deliverable–you will decide on your project’s concept. You and your partner will define your own project based on something that is interesting to your team. (Be creative!)

To give you an overview, the following diagram shows the order of components in which you will be working on, which follows our overall class discussions. Details and submission information will be provided on the assignment pages as each sprint approaches.

It is important to note that the following image simply shows the order and the specific technologies you will implement. It does not show the architecture of the system. You may design your system using any software architectural styles (discussed in class) as long as your system consists of web components implemented with all the required languages and technologies.

Graphical Overview of Project Sprints 1-5


At the end of the semester, we will have project presentations before the class and vote for a few titles: “best usable” project and “coolest” project

Remember to be creative and have fun! Use this opportunity, within the constraints of the project requirements, to format your project as you’d like and add any additional elements you feel should be included.

Note: it is wise to use version control, such as git, to keep your project backed up

A note about the project

Common questions about a project such as ours are:

In real life, yes – this is possible and very common. Many phone-based applications are single-page apps. However, in this class, no – our goal is to experience multiple languages, different design patterns (front-end, back-end), and build a foundation for web development.

We want students to learn the underlying concepts of web development, be exposed to as many technologies and languages as possible, experience both frontend and backend components, and be able to integrate diverse web components to create a system. Several companies have visited our department and pointed out that they preferred the ability to apply fundamental knowledge and work with several new technologies they might use. To response to the job market, this class intentionally designs an overview of the project under the above constraints. The ultimate goal of this project is that students have hands-on experience with several technologies and are able to make these components interact with each other to provide services.

Special Helper Extra Credit

1 point for each project helped, up to 10 (total) extra project points

For each sprint, if you get help from your classmates (excluding your project partner), when you submit yoru assignment, please make a note (helper.txt) that:

Note: Extra points will not be awarded if any of the above information is missing.