User feedback mechanism
This project implements a simple feedback collection API. It is lightweight, demonstrates core backend development principles including API design, data validation, modularization, and persistent storage with PostgreSQL.
- Python 3
- Flask
- PostgreSQL
- Flask-SQLAlchemy
- Docker
- Gunicorn
- Flasgger
- Feedback Submission: Collects feedback including rating, opinion, and optional contact info.
- Data Validation: Ensures feedback data adheres to predefined rules.
- Persistent Storage: Uses PostgreSQL to persist feedback.
- Containerized: Fully containerized with Docker for consistent development and deployment.
Prerequisites: Docker Desktop installed and running.
Instructions:
- Clone the repository.
- Navigate to the project directory.
- Run the following command:
docker compose up --buildThe API will be available at http://localhost:8000
To run the tests, execute the following command in your terminal:
pytest -vThis API is currently deployed on Render's free tier service, which means the server sleeps after moments of inactivity. However, I will ensure to nudge the server using Choque CLI; an open source tool I built to keep servers awake - with support for configurable intervals, persistent logging, and summary reporting.
