- User must be able to create an account and log in.
- When logged in, a user can see, edit and delete his times he entered.
- Implement at least three roles with different permission levels: a regular user would only be able to CRUD on their owned records, a user manager would be able to CRUD users, and an admin would be able to CRUD all records and users.
- Each time entry when entered has a date, distance, and time.
- When displayed, each time entry has average speed.
- Filter by dates from-to.
- Report on average speed & distance per week.
- REST API. Make it possible to perform all user actions via the API, including authentication
- All actions need to be done client side using AJAX, refreshing the page is not acceptable.
- Minimal UI/UX design is needed. You will not be marked on graphic design. However, do try to keep it as tidy as possible.
- JavaScript is a MUST to extend this application now that ReactJS is a framework of JavaScript.
- The basic of ReactJS knowledge is required to understand this application.
- The concept of Redux for JavaScript is required how to manage states in its store.
Make sure you have installed all of the following prerequisites on your development machine:
- Git - Download & Install Git. OSX and Linux machines typically have this already installed.
- Node.js - Download & Install Node.js and the npm package manager. If you encounter any problems, you can also use this GitHub Gist to install Node.js.
- MongoDB - Download & Install MongoDB, and make sure it's running on the default port (27017).
- Bower - You're going to use the Bower Package Manager to manage your front-end packages. Make sure you've installed Node.js and npm first, then install bower globally using npm:
$ git clone https://github.com/douglas822/react-CRUD.git react-CRUD
$ npm install
$ npm start
Go to your web browser and you are able to find the app running on localhost port 3000
- Thanks for visiting my repository.