SPA application for working with learning materials. Each material has title, description, optional img. Registered users can leave comments on materials and add materials to their profile in a categoty want-to-watch, watched or watching
- Users can Register, Login and Logout in the application
- Users provide
username
andpassword
- Users provide
- All users (even not logged in) can
- View other users profile page
- View list of materials, that are created by any user
- The
title
,createdOn
,description
andimg
are shown - Clicking on a
title
should take the user to the details page of that material
- The
- Search by
title
,user
ordescription
- View all comments of a material
- View their and other users profile page
- View the details page of the material
- Shows the
title
, fulldescription
,img
,username
of the creator of the material and a list with all comments- Clicking on the
username
(who created the material) should open that user's profile page (#/users/:username
)
- Clicking on the
- Shows the
- Registered and Logged-in users can:
- Have a profile page on
#/user/profile
- Create a new material
- Providing
title
,description
and optionallyimg
- Providing
- Leave comments on existing materials
- Prodiving
commentText
- Prodiving
- Assign a Status to a material
- Status can be
want-to-watch
,watched
,watching
- Status can be
- Have a profile page on
- Shows the current users details by username
- Show
want-to-watch
,watched
,watching
and lists materials in that state for the current user
- View all materials
- List all materials from the server
- Search materials
- View only filtered materials that contain the search phrase
- Redirects to Search results page
- Details page:
- Shows the
title
, fulldescription
,user
,img
and list with all comments- Clicking on the
user
should open that user's profile page (#/users/:username
)
- Clicking on the
- Logged-in users can assign a Status to a material
- Status can be
want-to-watch
,watched
orwatching
- Status can be
- Shows the
#/
- Redirects to
#/home
- Redirects to
#/home
- Shows all materials
- Available to all users, logged-in or not
#/home?filter=XXXXXX
or#/home/XXXXXX
- Shows the materials that match the search phrase in the Search Page
- Available to all users, logged-in or not
#/auth/register
- Shows register form
- Available to logged-out users
#/auth/login
- Shows login form
- Available to logged-out users
#/auth/logout
- Logged out user
- Available to logged-in users
#/user/:profile
- Shows the profile of logged-in user
- Available to logged-in users
#/user/watchlist/:categoty
- Shows the materials of user with the
categoty
passed in the URL #/user/watchlist/want-to-watch
should show thewant-to-watch
materials of the user- Available to logged-in users
- Shows the materials of user with the
#/users/all
- Shows all users
- Available to all users, logged-in or not
#/users/:username
- Shows the profile of user with the
username
passed in the URL #/profiles/john
should show the profile of the userjohn
- Available to all users, logged-in or not
- Shows the profile of user with the
#/materials/add
- Show add material form
- Available to logged-in users
#/materials/:id
- Shows the materials the Details page of the material with the provided
id
, with full description- Logged in users only should be able to change the status of the material (
want-to-watch
,watched
,watching
)
- Logged in users only should be able to change the status of the material (
- Available to all users, logged-in or not
- Shows the materials the Details page of the material with the provided
- Unit tests with Mocha, Chai and Sinon for each method of the services
- Test if the methods work correctly with correct data
- Test if the methods throw/return approriate exceptions/results
- User
- username
- A string
- Has length between 6 and 30
- Can contain only Latin letters, digits and the characters '_' and '.'
- password
- A string
- Has length between 6 and 30
- Can contain only Latin letters, digits
- username
- Material
- title
- A string
- Has length between 6 and 100
- Can contain any characters
- description
- A string
- Has no length restrictions
- Can contain any characters
- title