Skip to content

Latest commit

 

History

History
76 lines (65 loc) · 2.82 KB

DOCUMENT.md

File metadata and controls

76 lines (65 loc) · 2.82 KB

Documentation of project

TODO

  • get /:id to retrieve user info

  • improve profile ui

  • improve product ui

  • pagination on product list (BE and FE)

  • search on product list

  • "opinionated" eslint format (ongoing on FE)

  • unit test (ongoing on FE)

  • login credential for express

  • upon checkout add cart data to backend

  • express-session

  • deployment

  • pre-push

  • nyc script

  • sql injection for mongo

  • change theme dynamically

Main objective

A web application where customers can purchase their products online

Frontend

React framework Axios library for backend api call Font-awesome icon library

Backend

MongoDB Atlas cloud

Cart system

React redux to storing the cart data temporary.

Unit test for backend and frontend

  • Unit test going to be explore

Document criteria for assessment

Application

  • Design and implementation of REST API for web application feature
  • View the list of the products based on the product categories
  • Add the products to the shopping cart
  • View the products listed on the shopping cart
  • Remove the products listed on the shopping cart
  • Checkout shopping cart and continue their transaction to payment page
  • Responsive web application with UI built using React
  • Unit test for backend of the application
  • Readme content about how to build and start the application

Criteria

  • A pull request against master branch of your repository with a clear description of the change and purpose and merge it
  • Unit test with at least 80% code coverage across lines, statements, and branches
  • Combine code repository for both API and UI application and include a shortcut command on how to start both application (Used concurrently lib to run both site at same time)
  • [BONUS] Add Unit test for the front end application
  • [BONUS] Add Typescript support

Implement Tooling

  • eslint - for linting (installed but require format)
  • nyc - for code coverage (script require to explore, installed but require write script)
  • pre-push - for git pre push hook running tests (installed but removed - having problem with npm-cli script)

Criteria

  • Create a pull request against master branch of your repository with the new tooling and merge it
  • eslint should have an opinionated format
  • nyc should aim for test coverage of 80% across lines, statements, and branches
  • pre-push should run the tests before allowing pushing using git
  • Ensure that tooling is connected to npm test
  • [BONUS] Add hot reloading feature for local environment development

Security

  • Ensure the system is not vulnerable to SQL injection link
  • [BONUS] Implement an additional web application security improvement of your choice

Deployment

  • Front-end
  • Back-end