{"id":29503535,"url":"https://github.com/whoismaruf/fa-todo-rest","last_synced_at":"2026-05-19T03:17:00.876Z","repository":{"id":304542027,"uuid":"1019094127","full_name":"whoismaruf/fa-todo-rest","owner":"whoismaruf","description":null,"archived":false,"fork":false,"pushed_at":"2025-07-13T18:47:52.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-13T20:31:06.760Z","etag":null,"topics":["fastapi","python","rest-api","todo"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/whoismaruf.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2025-07-13T18:11:24.000Z","updated_at":"2025-07-13T18:47:55.000Z","dependencies_parsed_at":"2025-07-13T20:31:21.389Z","dependency_job_id":"35bf29ae-cf8a-439d-9449-61777063f6e0","html_url":"https://github.com/whoismaruf/fa-todo-rest","commit_stats":null,"previous_names":["whoismaruf/fa-todo-rest"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/whoismaruf/fa-todo-rest","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whoismaruf%2Ffa-todo-rest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whoismaruf%2Ffa-todo-rest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whoismaruf%2Ffa-todo-rest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whoismaruf%2Ffa-todo-rest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/whoismaruf","download_url":"https://codeload.github.com/whoismaruf/fa-todo-rest/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whoismaruf%2Ffa-todo-rest/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265465883,"owners_count":23770452,"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","python","rest-api","todo"],"created_at":"2025-07-15T23:01:18.926Z","updated_at":"2026-05-19T03:17:00.832Z","avatar_url":"https://github.com/whoismaruf.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FastAPI To-Do REST API\n\nA professional, scalable, and future-ready To-Do list REST API built with **FastAPI**, **SQLModel** (async ORM), **SQLite**, and **Alembic** for migrations.\n\n---\n\n## Features\n\n- Async FastAPI application with modular structure  \n- SQLite database with SQLModel ORM  \n- Alembic migrations for database version control  \n- Environment-based configuration using `.env` and `pydantic-settings`  \n- Clean architecture with separated layers: models, schemas, repositories, services, routes  \n- Data validation with Pydantic schemas  \n- Ready for extension to PostgreSQL, Docker, and auth\n\n---\n\n## Project Structure\n\n```\nfa-todo-rest/\n├── alembic/\n│   └── versions/                 # Alembic migration scripts\n├── app/\n│   ├── api/\n│   │   └── v1/\n│   │       └── routes/           # FastAPI routes\n│   ├── core/\n│   │   └── config.py             # App settings (pydantic)\n│   ├── crud/ or repositories/    # Data access layer\n│   ├── db/\n│   │   ├── base.py               # Base metadata\n│   │   └── session.py            # DB session management\n│   ├── models/                   # SQLModel models\n│   ├── schemas/                  # Pydantic schemas\n│   ├── services/                 # Business logic layer\n│   └── main.py                  # FastAPI app entrypoint\n├── .env                         # Environment variables\n├── alembic.ini                  # Alembic config\n├── requirements.txt             # Python dependencies\n└── README.md                    # This file\n```\n\n---\n\n## Getting Started\n\n### Prerequisites\n\n- Python 3.10+  \n- SQLite (comes bundled with Python)\n\n---\n\n### Installation\n\n1. Clone the repo:\n\n```bash\ngit clone https://github.com/whoismaruf/fa-todo-rest.git\ncd fa-todo-rest\n```\n\n2. Create and activate a virtual environment:\n\n```bash\npython -m venv .venv\nsource .venv/bin/activate  # On Windows use `.venv\\Scripts\\activate`\n```\n\n3. Install dependencies:\n\n```bash\npip install -r requirements.txt\n```\n\n4. Create a `.env` file at project root with:\n\n```env\nDATABASE_URL=sqlite+aiosqlite:///./todo.db\nAPI_KEY=your_api_key_here\nDEBUG=True\n```\n\n5. Run Alembic migrations:\n\n```bash\nalembic upgrade head\n```\n\n6. Start the FastAPI server:\n\n```bash\nuvicorn app.main:app --reload\n```\n\nOpen your browser at http://127.0.0.1:8000/docs for Swagger UI.\n\n---\n\n## Usage\n\n- Create, Read, Update, Delete (CRUD) To-Do items via REST API  \n- Use `/docs` for interactive API exploration\n\n---\n\n## Migrations\n\n- To create a new migration after model changes:\n\n```bash\nalembic revision --autogenerate -m \"your message\"\nalembic upgrade head\n```\n\n---\n\n## Configuration\n\nAll settings are managed via environment variables loaded by `pydantic-settings`:\n\n| Variable      | Description           | Default            |\n|--------------|-----------------------|--------------------|\n| `DATABASE_URL` | Database connection URL | No default (required) |\n| `API_KEY`      | API key for auth or external services | No default (required) |\n| `DEBUG`       | Enable debug mode (True/False) | False              |\n\n---\n\n## Future Improvements\n\n- Add authentication (JWT, OAuth2)  \n- Switch to PostgreSQL or other DBs  \n- Dockerize app with Docker Compose  \n- Add unit and integration tests  \n- Implement pagination, filtering\n\n---\n\n## License\n\n[MIT](LICENSE)\n\n---\n\n## Contact\n\nCreated by [Maruf Khan] - feel free to reach out!\n\n---\n\nHappy coding! 🚀\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwhoismaruf%2Ffa-todo-rest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwhoismaruf%2Ffa-todo-rest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwhoismaruf%2Ffa-todo-rest/lists"}