This project is a simple and straightforward bills and invoicing management system. It supports adding and retrieving bills, with basic filtering support. It's built using FastAPI and PostgreSQL, uses Docker for deployment, and features authentication, logging, migrations system, etc.
This project supports Python versions greater than 3.11
.
fastapi
: A modern, fast (high-performance) web framework for building APIs with Python 3.7+ based on standard Python type hints.SQLAlchemy
: A SQL toolkit and ORM that provides a set of high-level API for connecting to relational databases.pydantic
: A data validation and settings management library using Python type annotations.asyncpg
: A library for accessing a PostgreSQL database from the asyncio framework.fastapi-restful
: A library for building RESTful APIs with FastAPI.passlib
: A password hashing library for Python that provides cross-platform implementations of over 30 password hashing algorithms.pyjwt
: A Python library for encoding and decoding JSON Web Tokens (JWTs).alembic
: A lightweight database migration tool for usage with SQLAlchemy.python-dotenv
: A library for loading environment variables from a.env
file.pydantic-settings
: A library for managing application settings using Pydantic models.aiosqlite
: A library for accessing a SQLite database from the asyncio framework.pytz
: A library for working with time zones in Python.starlette-context
: A library for managing context variables in Starlette and FastAPI applications.uvicorn
: A lightning-fast ASGI server implementation, using uvloop and httptools.typing-inspect
: A library for runtime inspection of Python typing information.python-multipart
: A library for parsing multipart/form-data requests in Python.argon2-cffi
: A Python binding of the Argon2 password hashing algorithm.
- Clone the project repository to your local machine using
git clone <repository-url>
command. - Navigate to the project directory using
cd <project-directory>
command. - Create a copy of the
sample.env
file. Adjust the credentials as per your needs and save the file as.env
in the project root directory. - Build the image using Docker Compose
docker compose build
. - Start the services using Docker Compose
docker compose up
.
This repository also includes the Postman Collection postman_collection.json
. Please import it to Postman to test and trial the endpoints.