A modern task management application designed to help you stay organized and productive.
The application is deployed live at: Live URL The API is available at: API Endpoint
- Task Geass
- Key Features
- Getting Started
- Tech Stack
- Live Deployment
- API Endpoint
- Usage
- Contribution
- License
- Contact
- User Authentication: Safeguard your tasks and information with our user authentication system.
- Login & Register: Sign up to start organizing, or log in to access your tasks.
- Secure Password Recovery: Forget your password? Recover it securely.
- Task Management: Add, view, and edit tasks with ease.
- Task Prioritization: Determine which tasks need your attention first.
- Mark Tasks as Complete: Get the satisfaction of checking off completed tasks.
- Sorting & Filtering: Easily find and order your tasks.
- Search: Quickly locate specific tasks.
Ensure you have the necessary software installed:
- Node.js: Required to run the application.
- npm: Node Package Manager used for managing dependencies.
- Clone the repository from GitHub:
git clone https://github.com/RevoU-FSSE-2/week-18-m-istighfar.git
- Navigate to the cloned directory:
cd week-18-m-istighfar
- Install the required dependencies:
npm install
- Start the development server:
npm start
- Open your browser and navigate to
http://localhost:5173
or the port you set.
- React: A JavaScript library for building user interfaces.
- React Router DOM: A collection of navigational components that compose declaratively with your app.
- Ant Design: A design system with values of Nature and Determinacy for better user experience of enterprise applications.
- Vite: An opinionated web dev build tool that serves your code via native ES modules.
- TypeScript: Superset of JavaScript that compiles to clean JavaScript output, adding optional static typing.
- Moment.js: Rich, comprehensive time & date utility library.
- vite-plugin-pwa: Vite plugin to add PWA capabilities to your project.
- Express: Fast, unopinionated, minimalist web framework for Node.js.
- Node.js: JavaScript runtime built on Chrome's V8 JavaScript engine.
- Morgan: HTTP request logger middleware for Node.js.
- Body Parser: Parse incoming request bodies in a middleware before your handlers.
- Cookie Parser: Parse Cookie header and populate
req.cookies
with an object keyed by the cookie names. - CORS: Middleware for enabling Cross-Origin Resource Sharing in your application.
- Helmet: Helps secure Express apps with various HTTP headers.
- Mongoose: MongoDB object modeling for Node.js.
- BCrypt: Library for hashing and salting user passwords.
- JSON Web Token (JWT): Implementation for encoding and decoding JWT tokens.
- Dotenv: Zero-dependency module that loads environment variables from a
.env
file intoprocess.env
. - Faker: Generate massive amounts of realistic fake data in Node.js.
- Rotating File Stream: Creates a stream that writes on a file and rotates it based on time or size.
- Swagger UI Express: Auto-generated API docs and a testing tool for your Express API.
The API is available at: API Endpoint
Method | Endpoint | Description |
---|---|---|
POST | /auth/register | Register a new user |
GET | /auth/verify-email/{token} | Verify user's email address |
POST | /auth/login | Login user |
POST | /auth/refreshToken | Refresh the access token |
POST | /auth/request-password-reset | Request a password reset email |
POST | /auth/reset-password/{resetToken} | Reset user's password with a given token |
GET | /user/tasks | Get all tasks for the logged-in user |
POST | /user/tasks | Create a new task for the logged-in user |
DELETE | /user/tasks | Delete all tasks for the logged-in user |
GET | /user/tasks/{id} | Get a specific task by ID |
PUT | /user/tasks/{id} | Update a specific task by ID |
DELETE | /user/tasks/{id} | Delete a specific task by ID |
PATCH | /user/tasks/{id}/complete | Mark a specific task as complete |
GET | /admin/list-user | Get a list of all users (Admin only) |
POST | /admin/create-user | Create a new user (Admin only) |
PUT | /admin/update-user/{id} | Update a specific user by ID (Admin only) |
DELETE | /admin/delete-user/{id} | Delete a specific user by ID (Admin only) |