- Objective - to create an implementation of a small web service
- Purpose - to demonstrate the construction of a full-stacked web-application
- Wireframe - Mockflow
- Frontend - Angular / React
- Business Logic - Java
- Data Layer - MySQL
- Cloud - Heroku/AWS/Google
Use Spring Initializr (or JHipster) to create an starting point for your application
- As a user, (not logged in) I
- can view list of all documents
- can view a specific document
- As a user, (logged in) I
- can create new documents
- A document can consist of images and text
- can view list of all documents
- uses a well-known JS text editor (like Monaco?)
- can view documents filtered by a search term
- can download/upload docs to/from "desktop"
- can create new documents
- As a user, (not logged in) I
- can view list of all videos
- As a user, (logged in) I
- can upload new videos
- can view list of all videos
- can post simple text-comments on a video
- As a client (not logged in) I can register as a new user
- As a user, I
- can create a new workspace
- can view default channels
- can view accessible channels
- can direct message other users
- can view messages live as they are received
- As an admin, I am a user who can
- create new channels
- remove users from channels
- As a client (not logged in) I can see news headlines
- and # of likes about news stories
- As a user, (logged in) I
- search for news of interest
- create bookmarks for myself
- add a like to a news story
- create comments on news stories that other logged in users can see.
- As a user, (not logged in) I
- can create new accounts
- As a user, (logged in) I
- deposit money to each account
- withdraw money from each account
- transfer money to and from any 2 accounts
- As a user, (not logged in) I
- can view list of all blog posts
- can view blog posts filtered by blog-tag
- As a user, (logged in) I
- can create new blog posts
- A blog post can consist of images and text
- can view list of all blog posts
- can view blog posts filtered by blog-tag
- can view new blog posts upon refreshing the DOM
- can create new blog posts
- As a user, (not logged in) I
- can view list of all tweets from all users
- As a user, (logged in) I
- can post a new tweet (limited to 255 chars)
- can view list of all tweets
- can see tweets by a specific user
- can use "@" notation to direct a tweet to another user
- can add images to tweets
- all new tweets appear in timeline as they come in
- can search by "#" hashtags
- As a user, (logged in) I
- can send messages to a peer.
- can view default channels
- can view all accessible channels
- can view messages live as they are received