A MERN application for basic tasks management.
- Signup
- Login
- Logout
- Add tasks
- View tasks
- Update tasks
- Delete tasks
- Toasts for success and error messages
- Form validations in frontend and backend
- Fully Responsive Navbar
- Token based Authentication
- Use of 404 page for wrong urls
- Relevant redirects
- Global user state using Redux
- Custom Loaders
- Use of layout component for pages
- Use of theme colors
- No external CSS files needed (made using Tailwind CSS)
- Usage of Tooltips
- Dynamic document titles
- Redirect to previous page after login
- Use of various React hooks
- Custom hook also used (useFetch)
- Routes protection
- Middleware for verifying the user in backend
- Use of different HTTP status codes for sending responses
- Standard pratices followed
- HTML
- CSS
- Javascript
- Tailwind CSS
- Node.js
- Express.js
- React
- Redux
- Mongodb
Following are the major dependencies of the project:
- axios
- react
- react-dom
- react-redux
- react-router-dom
- react-toastify
- redux
- redux-thunk
- bcrypt
- cors
- dotenv
- express
- jsonwebtoken
- mongoose
Following are the major dev-dependencies of the project:
- nodemon
- concurrently
- Node.js must be installed on the system.
- You should have a MongoDB database.
-
Install all the dependencies
npm run install-all
-
Create a file named ".env" inside the backend folder. Add data from .env.example file and substitute your credentials there.
-
Start the application
npm run dev
-
Go to http://localhost:3000
At root:
npm run dev
: Starts both backend and frontendnpm run dev-server
: Starts only backendnpm run dev-client
: Starts only frontendnpm run install-all
: Installs all dependencies and dev-dependencies required at root, at frontend and at backend.
Inside frontend folder:
npm start
: Starts frontend in development modenpm run build
: Builds the frontend for production to the build foldernpm test
: Launches the test runner in the interactive watch modenpm run eject
: This will remove the single build dependency from the frontend.
Inside backend folder:
npm run dev
: Starts backend using nodemon.npm start
: Starts backend without nodemon.