A full-stack To-Do List application built with React (frontend) and a Node.js/Express/Prisma/PostgreSQL backend. This project allows users to register, authenticate, and manage their personal tasks in an intuitive interface.
- User Authentication: Secure registration and login (JWT-based).
- Task Management: Add, edit, complete, delete, and view details for your tasks.
- Search & Filter: Easily search your tasks by title.
- Responsive UI: Built with React and TailwindCSS for a clean look.
- Protected Routes: Task operations require user authentication.
- RESTful API: Backend exposes endpoints for all CRUD operations.
- Frontend: React, TailwindCSS
- Backend: Node.js, Express.js, Prisma
- Database: PostgreSQL
- Node.js and npm installed
- Navigate to the
backend/directory:cd backend - Install dependencies:
npm install
- Start the backend server:
npm run dev
- The backend runs by default on
http://localhost:3000.
Here are the main endpoints available:
POST /auth/register— Register a new user and obtain a JWTPOST /auth/login— Authenticate and obtain a JWTPUT /auth/password- Change a user's passwordGET /todos— Get all todos for authenticated userPOST /todos— Create a new todoPUT /todos/:id— Update a todoDELETE /todos/:id— Delete a todoPOST /todos/categorys- Create a new category
- Navigate to the
frontend/directory:cd frontend - Install dependencies:
npm install
- Configure API endpoint:
- Create a
.envfile infrontend/and set:VITE_API_URL=http://localhost:3000
- Create a
- Start the frontend app:
npm run dev
- Visit
http://localhost:5173(or as indicated by your dev server).
- Register or login to start managing your tasks.
- Add a new task with title and optional description.
- Click on a task to toggle its completion status.
- Edit or delete tasks using the provided actions.
- Search tasks by their title.
todo-app/
├── backend/ # Express backend & API
│ ├── todo-app.rest # Example REST requests
│ └── ...
├── frontend/ # React frontend app
│ ├── src/
│ ├── components/
│ ├── pages/
│ └── App.jsx
│
└── README.md # Project root README
Pull requests and issues are welcome! Please open an issue to discuss any major changes.