This project is a full-stack to-do list application built using React for the frontend and Node.js/Express for the backend, with a MongoDB Atlas database and deployment to AWS Lambda + API Gateway and S3 for hosting.
(site currently down, you can run locally by creating new mongodb connection) Click here to view the live site
A simple and functional to-do list web application where users can:
- Register and log in with their accounts.
- Create, update, delete, and list tasks.
- Mark tasks as completed or pending.
- Toggle to hide completed tasks.
Clone the repositry:
git clone "https://github.com/manuelruff/HOME_TIFF.git"Open the project in your favorite editor
-
Navigate to the frontend directory:
cd client -
Install dependencies:
npm install
-
Create
.envin theclientdirectory:REACT_APP_API_URL=http://localhost:5000/api
-
Start the frontend locally:
npm start
-
Navigate to the backend directory:
cd server -
Install dependencies:
npm install
-
Create
.envin theserverdirectory:MONGO_URI=mongodb+srv://manuelr:Manuel1969@todolist.ikcih.mongodb.net/todo?retryWrites=true&w=majority&appName=ToDoList PORT=5000
-
Run the backend locally:
node index.js
Your server will be running at
http://localhost:5000.
- POST /users: Register a new user.
- POST /users/login: Log in a user.
- i left some as a note for debugging if needed
- POST /tasks: Add a new task.
- GET /tasks?username=: Get tasks for the user.
- PUT /tasks/:id: Update a task.
- DELETE /tasks/:id: Delete a task.
-
Registration Request:
- URL:
http://localhost:5000/api/users - Method:
POST - Body (JSON):
{ "name": "example_user", "password": "example_password" }
- URL:
-
Login Request:
- URL:
http://localhost:5000/api/users/login - Method:
POST - Body (JSON):
{ "name": "example_user", "password": "example_password" }
- URL:
-
Get All Tasks for a User:
- URL:
http://localhost:5000/api/tasks?username=example_user - Method:
GET
- URL:
-
Add a Task:
- URL:
http://localhost:5000/api/tasks - Method:
POST - Body (JSON):
{ "title": "New Task", "username": "example_user" }
- URL:
-
Update a Task:
- URL:
http://localhost:5000/api/tasks/{taskId} - Method:
PUT - Body (JSON):
{ "title": "Updated Task Title", "completed": true }
- URL:
-
Delete a Task:
- URL:
http://localhost:5000/api/tasks/{taskId} - Method:
DELETE
- URL:
- Add JWT-based authentication for better security.