Final Project
Goal: Build a small single-page app that uses your own API.
This project has two parts:
- Stage 1: Project planning and wireframing
- Stage 2: App implementation
Your app should feel small, clear, and complete. It is better to build one thing well than to build many unfinished features.
What You Are Building
You are building:
- one single-page app (SPA)
- with a login
- backed by your own API
- with one main user task
What You Will Turn In
- a planning + wireframing submission for Stage 1
- a finished app for Stage 2
Project Scope
Choose one starter idea below, or propose something similar in size.
Starter Project Ideas
| App Name | App Description | Potential Third-Party Widgets | Potential Endpoints |
|---|---|---|---|
| Live Music Memory Map | Track concerts you have attended, where they happened, when they happened, and your notes or ratings for each one. |
|
|
| Public Art Explorer | Browse and document murals, sculptures, and installations around a city, including location, artist, category, and notes. |
|
|
| Favorite Coffee Spots | Save and review coffee shops, including location, rating, drink notes, and study-friendliness. |
|
|
| Daily Walks & Wanders | Log walking routes or favorite walking destinations, along with distance, mood, weather, and notes. |
|
|
| Community Bulletin Board | Post announcements with a date, time, location, image, and category, then allow users to browse or filter announcements. |
|
|
| Favorite Study Spots | Keep a list of study locations with photos, quietness rating, amenities, and time-of-day preferences. |
|
|
| Scheduling App | Set goals, categorize them, assign time slots, and track whether each goal was completed. |
|
|
Project Rules
Your final app must:
- be a single-page app
- have one main user workflow
- use at least 2 API endpoints
- include a login page or login flow using the starter auth code from class
- show user-specific data or behavior
- support CRUD for the main resource
- include at least 2 third-party components
Need help understanding the rules?
Here is what each rule means in plain language:
- Single-page app means the app works as one app, not as a group of separate HTML pages.
- One main user workflow means there is one clear thing the user can do from start to finish.
- At least 2 API endpoints means your client should talk to at least two routes such as
/api/photosand/api/albums. - Login means the user must sign in with the starter authentication code from class.
- User-specific data or behavior means accounts should matter in some meaningful way. That might mean users see their own records, have different permissions, or the app tracks who created or edited an item.
- CRUD means the user can create, read, update, and delete the main kind of item in the app.
- Third-party components means tools or libraries you did not build yourself, such as a map, chart, date picker, modal, lightbox, or UI component library.
What would this look like in PhotoApp?
Here is one example of an app that meets the project rules:
- App idea: PhotoApp
- Main user workflow: log in, upload/manage photos, organize them into albums
- Main resource:
photos - Second resource:
albums - Possible endpoints:
/api/photos,/api/albums,/api/profile - User-specific behavior: the app tracks who owns or created photos and albums, and the interface changes meaningfully based on the logged-in user
- CRUD example: create a photo entry, view photos, edit a caption, delete a photo
- Third-party components: image lightbox, date picker, chart of uploads by month
Scope Guidelines
- Keep the project small enough to finish well.
- One polished workflow is better than five unfinished ones.
- Make sure your API and your interface match each other.
- Make design choices that make the app easier to use.
Need help choosing a good scope?
Good scope:
- one main feature
- a few clear screens or states
- a small number of data fields
- 2 or 3 endpoints that clearly support the app
Too big:
- a social network
- a marketplace
- a full learning management system
- an app with many unrelated features
Project Stages
Use these two documents as your guide:
Final Note
This project is meant to show that you can move from idea -> plan -> design -> implementation. Your app does not need to be large. It does need to be clear, functional, and complete.