Loading repository data…
Loading repository data…
aarya095 / repository
FastAPI-based contact manager API with PostgreSQL, featuring CRUD operation and encrypted data handling.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
⚠️ Live Demo: Currently unavailable because the hosted database instance has expired.
FastAPI-based contact manager API with PostgreSQL, featuring CRUD operation and encrypted data handling.
FeaturesArchitectureTech StackProject StructureSetup InstructionsProject EvolutionFeedback WelcomePOST /contactsGET /contacts/{contact_id}GET /contactsPUT /contacts/{contact_id}DELETE /contacts/{contact_id}cryptography)logging module.
├── alembic/
├── app/
│ ├── database/
│ ├── main.py # FastAPI application entry point
│ ├── routes.py
│ ├── schemas.py
│ └── services/
├── config/
├── docs/
|── tests/
├── Dockerfile
├── requirements.txt
git clone https://github.com/aarya095/Contact-Manager.git
cd Contact-Manager
.env.main file in the project root:DATABASE_URL = sqlite:///dev.db
MASTER_KEY="OjVDJ1YVzBxrBAKiJfxXoAihMzVqbMQNm-kKvoltEJs="
docker compose up --buildFollow the first two instructions from the above setup.
Create a virtual environment:
python -m venv venvvenv\Scripts\activatepython3 -m venv venvsource venv/bin/activatepip install -r requirements.txt.env.mainuvicorn app.main:app --reloadThis project originally started as a CLI-based Contact Manager application.
You can find the CLI version in the cli branch:
https://github.com/aarya095/Contact-Manager/tree/menu-driven-cli
After converting the app into an API, I first implemented a unique encryption key for each contact, with keys stored in the .env file. However, while preparing to Dockerize the app, I realized this approach wasn’t practical. I then simplified the design to use a single master encryption key stored in .env.
The per-contact encryption implementation is available in the feature/per-contact-env-keys branch:
https://github.com/aarya095/Contact-Manager/tree/feature/per-contact-env-keys
I'm actively learning backend development with Python and FastAPI.
If you notice improvements related to:
I'd greatly appreciate your feedback or suggestions.
Author: Aarya Sarfare