This is a simple Todo application built with React.js for the frontend and Express.js with Prisma for the backend. Users can sign up, sign in, add, update, and delete todos.
- User authentication (sign up, sign in)
- Add, update, delete todos
- JWT token-based authentication
- Password hashing with bcrypt
- Input validation
- Protected routes
- Responsive design
- React.js
- React Router
- Axios
- Tailwind CSS
- Node.js
- Express.js
- Prisma
- PostgreSQL
- JWT for authentication
- bcrypt for password hashing
- Node.js installed on your machine
- PostgreSQL installed and running
-
Clone the repository:
git clone https://github.com/AdhamAfis/Todo-App.git
-
Navigate to the project directory:
cd Todo-app
-
Install dependencies for both frontend and backend:
cd todo-app npm install cd ../todo-app-backend npm install
-
Set up environment variables:
-
Create a
.env
file in thebackend
directory. -
Define the following variables:
PORT=4000 DATABASE_URL="postgresql://johndoe:randompassword@localhost:5432/mydb?schema=public" JWT_SECRET=your_jwt_secret
-
-
Run the development servers:
# In the backend directory npx nodemon index.js # In the frontend directory npm run dev
-
The app should now be running on
http://localhost:5173
for the frontend andhttp://localhost:4000
for the backend.
This project is licensed under the MIT License.