This project is designed to replicate what you might receive on the job. There won't be any guided instruction on what you'll need to do. We will only provide you with design specifications and technical requirements. Your mentors have also been asked to provide only minimal guidance. They can point you in the right direction, but cannot help you code. This project is a chance for you to combine and showcase the skills you've learned so far.
With this specification/requirement only structure, we believe this project will showcase what you can do at this point of the program. Because of this, we feel this project will be worth putting in your portfolio.
Good luck and work hard!
Google Font - Open Sans
Google Font - Alegreya
- User can login into their account.
- User can register for an account.
- User should be navigated to the Browsing View on a successful login or successful registration.
- User can view all products available for purchase/checkout
- User can filter books by genre / availability
- User can reset an applied filter to see a list of all books again
- User can navigate to Book Details View by clicking on the books in the list
- User can navigate to Add Book View
- User can logout and be redirected back to the Auth View
- User is able to add book to cart from here
- User is able to navigate to Edit Book View
- User is able to delete a book from the database
- This should redirect the user back to the Browsing View
- User is able to navigate to previous view
- User should be redirected to the Browsing View after adding the book to the cart
- User populates an editable section based on the selected books details to update and change information about book
- User is able to navigate to previous view, canceling the edit
- User should be redirected to the Browsing View on completion
- User can add a new book to the library with all the appropriate values
- Title, Author, Genre, Description, img url, (The book should start in stock by default)
- User can see a preview of the image
- The image cannot break out of the preview container if the image is bigger
- The preview container's size should remain static
- User is able to navigate to previous view, canceling the addition of a new book
- User should be redirected to the Browsing View on completion
- User is able to remove an item from cart and cart is updated
- User can checkout
- Should add the books in the cart to the user's bookshelf
- Should clear the cart
- Should update books from in stock to out of stock
- User should be redirected to the Browsing View on checkout
- User can see list of books currently checked out on their account
- User can return books
- Should remove the book from the user's shelf
- Should update the books from out of stock to in stock
- The back-end should be created using express.
- Massive will be used to establish a connection to your database and manipulate/retrieve data with SQL files
- Student will create tables using the supplied data
- POST - /api/auth/login - Sets the user information on the session.
- On success return a status of 200 and the user object.
- A user object should have the following properties:
- id - This is the UserId you are using for your database.
- username - This is the username associated with the UserId.
- The database should store the password, but you should not send this information to the front end as part of the user object
- On failure return a status of 500.
- POST - /api/auth/register - Registers a user to the database. Sets the user information on the session.
- On success return a status of 200 and the user object.
- A user object should have the following properties:
- id - This is the UserId you are using for your database.
- username - This is the username associated with the UserId.
- The database should store the password, but you should not send this information to the front end as part of the user object
- On failure return a status of 500.
- POST - /api/auth/logout - Destroys the session. Sends a status of 200.