https://github.com/pixisprod/todo-api2.0
Asynchronous To-Do API with JWT authentication, role-based access control, and admin tools built on FastAPI and PostgreSQL.
https://github.com/pixisprod/todo-api2.0
admin alembic fastapi postgresql python rbac security sqlalchemy todo
Last synced: 2 months ago
JSON representation
Asynchronous To-Do API with JWT authentication, role-based access control, and admin tools built on FastAPI and PostgreSQL.
- Host: GitHub
- URL: https://github.com/pixisprod/todo-api2.0
- Owner: pixisprod
- Created: 2025-04-05T15:01:50.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-06T10:12:17.000Z (about 1 year ago)
- Last Synced: 2025-09-04T21:02:57.651Z (10 months ago)
- Topics: admin, alembic, fastapi, postgresql, python, rbac, security, sqlalchemy, todo
- Language: Python
- Homepage:
- Size: 67.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ๐ To-Do API





## ๐ Description
A fast and modern asynchronous To-Do API built with FastAPI and PostgreSQL.
Includes secure authentication with JWT, role-based access control (RBAC), and advanced admin tools for managing users and tasks efficiently.
### ๐ฅ Highlights
โก Fully asynchronous architecture for high performance
๐ JWT authentication and security layer
๐งฉ Role-based access control (RBAC) โ user and admin roles
๐ CRUD operations for tasks
๐ ๏ธ Admin tools to manage users and their tasks
๐งช SQLAlchemy + Alembic for database management
๐ PostgreSQL support
๐ฌ Integrational tests for more stability
---
## ๐ง Features
- Fully asynchronous
- Authentication and security system
- RBAC system (user, admin)
- Task operations:
- View tasks
- Edit tasks
- Delete tasks
- Create tasks
- Admin tools:
- Deactivate users
- Activate users
- View all users
- View tasks of all users
---
## ๐ Technologies
- **Language**: Python 3.13 ๐
- **Framework**: FastAPI โก
- **Database**: PostgreSQL ๐
- **ORM**: SQLAlchemy ๐งช
- **Migrations**: Alembic โ
- **Tests**: Pytest ๐ฌ
---
# โ How to setup and run
## ๐ฆ Preparation
1. **Clone the repository to your folder:**
```
git clone https://github.com/PixisProd/todo-api2.0.git
```
2. **Install poetry:**
```
pip install poetry
```
3. **Install the dependencies:**
```
poetry install --no-root
```
4. **Download and install PostgreSQL**:
- Visit the [official PostgreSQL download page](https://www.postgresql.org/download/).
- Ensure PostgreSQL is running and note the credentials for your database setup.
---
## ๐ Launch
1. First, create a `.env` file by copying `.env.example` and filling in all the required fields.
*You can also configure additional parameters, such as `JWT_SECRET_KEY`, etc.*
2. **Activate poetry virtual environment**:
```
poetry shell
```
3. **Run project**:
```
poetry run uvicorn src.main:app --reload
```
---
# ๐ Conclusion
Thank you for your attention. If you like the structure and implementation of the project, feel free to give it a star.
_โจ Crafted to build knowledge._