Check it out at task-sync-todo.vercel.app.
TaskSync is a task manager application that allows users to perform CRUD operations on tasks while incorporating user authentication and authorization. The project consists of a TypeScript and Express backend API integrated with a Next.js 14 based client interface.
- User Authentication & Authorization: TaskSync provides secure user authentication and authorization, ensuring that only authenticated users can access and manage tasks.
 - CRUD Operations: Users can create, read, update, and delete tasks associated with their account.
 
- Clone the TaskSync repository to your local machine:
 
git clone https://github.com/falcon71181/TaskSync
cd TaskSync- Navigate to the 
client/directory: 
cd client/- Install client dependencies using your preferred package manager (e.g., bun, npm, yarn):
 
bun install- Create a 
.envfile in theclient/directory and add the following variables: 
NEXT_PUBLIC_SERVER=http://localhost:3333- Navigate to the 
server/directory: 
cd ../server/- Install server dependencies using your preferred package manager:
 
npm install- Create a 
.envfile in theserver/directory and add the following variables: 
SERVER_PORT=3333
JWT_SECRET=secret
MONGO_URI=mongodb+srv://xxxxxxxxx:xxxxxxxxxxxxx
ALLOWED_METHODS="GET,HEAD,PUT,PATCH,POST,DELETE,OPTIONS"
ALLOWED_ORIGIN="https://task-sync-todo.vercel.app,http://localhost:5173,http://localhost:3000,http://localhost:8000,http://localhost:3333,http://localhost:5432"- Start the server:
 
bun devnodemon- Start the client:
 
cd ../client/
bun dev- 
Access the client interface at http://localhost:3000.
 - 
Ensure your MongoDB server is running and accessible with the provided URI in the
.envfile. 
- User Authentication:
- GET 
/health: Health Check - GET 
/users/validate: Validate user using their JWT token. - POST 
/users/register: Register a new user. - POST 
/users/login: Log in and authenticate a user. 
 - GET 
 - Task Management:
- GET 
/tasks: Retrieve tasks for the authenticated user. - POST 
/tasks/create: Create a new task for the authenticated user. - PATCH 
/tasks/:id/change: Update the progress status of an existing task belonging to the authenticated user. - DELETE 
/tasks/:id/delete: Delete a task specific to the authenticated user. 
 - GET 
 
- TypeScript
 - Tailwind CSS
 - Express
 - Node.js
 - Next.js 14 (for the client interface)
 - JSON Web Tokens (JWT) for authentication
 - Bcrypt
 
Contributions to enhance the functionality or improve the codebase are welcome! Feel free to open issues or pull requests.