{"id":21457844,"url":"https://github.com/elalfymohamed/to-do-list-backend","last_synced_at":"2025-03-17T04:11:03.148Z","repository":{"id":263911175,"uuid":"885556433","full_name":"elalfymohamed/To-Do-List-Backend","owner":"elalfymohamed","description":"To-Do List Backend - To-Do List application, built using Python, FastAPI, and MongoDB. It provides endpoints for user authentication, task management, profile management, and more.","archived":false,"fork":false,"pushed_at":"2024-12-09T22:38:15.000Z","size":38,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-23T13:33:57.732Z","etag":null,"topics":["fastapi","mongodb","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/elalfymohamed.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-08T20:26:02.000Z","updated_at":"2024-12-21T22:23:33.000Z","dependencies_parsed_at":"2024-12-09T23:26:30.530Z","dependency_job_id":"e31fd75e-b2d2-4440-ae9d-7f5e6bf78cf3","html_url":"https://github.com/elalfymohamed/To-Do-List-Backend","commit_stats":null,"previous_names":["elalfymohamed/todo-fastapi","elalfymohamed/to-do-list-backend"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elalfymohamed%2FTo-Do-List-Backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elalfymohamed%2FTo-Do-List-Backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elalfymohamed%2FTo-Do-List-Backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/elalfymohamed%2FTo-Do-List-Backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/elalfymohamed","download_url":"https://codeload.github.com/elalfymohamed/To-Do-List-Backend/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243971193,"owners_count":20376784,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fastapi","mongodb","python"],"created_at":"2024-11-23T06:07:48.498Z","updated_at":"2025-03-17T04:11:03.127Z","avatar_url":"https://github.com/elalfymohamed.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# To-Do List Backend\n\nThis is the backend for a To-Do List application, built using Python, FastAPI, and MongoDB. It provides endpoints for user authentication, task management, profile management, and more.\n\n---\n\n## Features\n\n### 1. **Authentication**\n\n- **Signup:** Create a new user account.\n- **Login:** Authenticate users with email and password.\n- **Forgot Password:** Request a password reset email.\n- **New Password:** Set a new password after receiving the reset link.\n\n### 2. **To-Do List**\n\n- **Create:** Add a new task.\n- **All:** Retrieve all tasks.\n- **Get by ID:** Fetch a specific task using its ID.\n- **Soft Delete:** Mark a task as deleted without removing it permanently.\n- **Update:** Modify task details.\n- **Delete:** Permanently remove a task.\n- **Get Recently Deleted:** List tasks that were recently soft-deleted.\n- **Patch Recently Deleted:** Restore or permanently delete recently soft-deleted tasks.\n\n### 3. **Profile**\n\n- **Get Information** Get user profile information.\n- **Reset Password:** Change the password for an authenticated user.\n- **Update Profile:** Edit user profile information.\n\n---\n\n## Project Structure\n\n```bash\n\n  | __src\n  |     |__core # .env Config\n  |     |__db # Database Config\n  |     |__middleware # Middleware  \n  |     |__models # Database models and schemas\n  |     |__routes # API endpoints\n  |     |__schemas\n  |     |__services # Core business logic\n  |     |__utils\n  |\n  |___main.py # Entry point of the application\n  |__.dockerignore\n  |__.env\n  |__.env.example\n  |__docker-compose.yml\n  |__Dockerfile\n  |__requirements.tex # Python dependencies\n  |__README.md # Project documentation\n  |\n\n```\n\n## Installation and Setup\n\n### Prerequisites\n\n- Python 3.12 or higher\n- MongoDB instance (local or cloud-based)\n\n### Steps\n\n```bash\n  python -m venv venv\n\n  source venv/bin/activate  # On Windows: .venv\\scripts\\activate.ps1   \n\n  pip install -r requirements.txt \n\n```\n\n### Run the application\n\n```bash\n\n  uvicorn main:app --reload\n\n```\n\n### Access the API documentation\n\n- Swagger UI: `http://127.0.0.1:8000/docs`\n- ReDoc: `http://127.0.0.1:8000/redoc`\n\n## Environment Variables\n\n\u003e .env\n\nTo run this project, you will need to add the following environment variables to your .env file\n\n```bash\n\n  DB_URL=\u003cyour_mongo_uri\u003e\n  DB_NAME=\u003cyour_mongo_collection\u003e\n\n  SECRET_KEY=\u003cyour_jwt_secret\u003e\n  ALGORITHM=\u003cyour_jwt_secret\u003e\n\n  MAIL_PASSWORD=\u003cyour_mail_password\u003e\n  MAIL_SERVER=\u003cyour_mail_server\u003e\n  MAIL_PORT=\u003cyour_mail_port\u003e\n  MAIL_USERNAME=\u003cyour_mail_username or email\u003e\n\n```\n\n## API Endpoints Overview\n\n### Authentication\n\n| Endpoint | Method     | Description                |\n| :-------- | :------- | :------------------------- |\n| `/auth/signup` | `POST` | Register a new user     |\n| `/auth/signup` | `POST` | Authenticate a user     |\n| `/auth/forgot-password` | `POST` | Request password reset email |\n| `/auth/new-password` | `POST` | Set a new password |\n\n### To-Do List\n\n| Endpoint | Method     | Description                |\n| :-------- | :------- | :------------------------- |\n| `/todo/create` | `POST` | Create a new task     |\n| `/todo/all` | `GET` | Get all tasks     |\n| `/todo/get/{id}` | `GET` | Get a task by ID |\n| `/todo/soft-delete/{id}` | `PATCH` | Soft-delete a task |\n| `/todo/update/{id}` | `PUT` | Update a task |\n| `/todo/delete` | `DELETE` | Permanently delete a task |\n| `/todo/recently-deleted` | `GET` | Get recently deleted tasks |\n| `/todo/recently-deleted` | `PATCH` | Restore or delete recently deleted tasks |\n\n### Profile\n\n| Endpoint | Method     | Description                |\n| :-------- | :------- | :------------------------- |\n| `/profile` | `GET` | profile information     |\n| `/profile/reset-password` | `PATCH` | Reset the password     |\n| `/profile/update` | `PUT` | Update user profile |\n\n## License\n\nThis project is licensed under the MIT License. See the LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felalfymohamed%2Fto-do-list-backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felalfymohamed%2Fto-do-list-backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felalfymohamed%2Fto-do-list-backend/lists"}