While my primary focus in recent years has been on Engineering Leadership and architecting large-scale enterprise systems, I remain deeply technical and hands-on. This project serves as a practical demonstration of my full-stack development capabilities, specifically using Python to build a scalable and containerized web application.
This application serves as a clean example of backend development best practices, including RESTful API design, database modeling with an ORM, and containerized deployment. It reflects the core software engineering principles I've applied and managed throughout my career.
- RESTful API Architecture: Designed with clean, resource-oriented endpoints for creating, retrieving, updating, and deleting data.
- ORM & Database Integration: Utilizes an ORM to effectively model data and interact with a PostgreSQL database, a skill I've applied with both SQL (Postgres) and NoSQL (MongoDB, Cassandra) systems.
- Containerized for Portability: Includes a
Dockerfile, allowing the application and its dependencies to be built and run reliably in any environment. This aligns with my experience in driving containerization efforts using Docker and OpenShift. - Scalable Service Design: Built as a microservice, a concept I have architected and implemented extensively using frameworks like Spring Boot.
- Backend: Python, Flask
- Database: PostgreSQL
- ORM: SQLAlchemy (or similar)
- Deployment: Docker
This stack was chosen for its robustness, rapid development capabilities, and strong community support, making it ideal for a wide range of web services.
To run this application locally using Docker, please ensure you have Docker and docker-compose installed.
-
Clone the repository:
git clone [https://github.com/amiralig/split-repo-pub.git](https://github.com/amiralig/split-repo-pub.git) cd split-repo-pub git checkout georgian-demo3 -
Run with Docker Compose: (Note: You may need to create a
docker-compose.ymlfile if one doesn't exist. A sample is provided below.)docker-compose up --build
The application should now be running and accessible.
If this project does not already contain a docker-compose.yml file, you can create one with the following content:
version: '3.8'
services:
web:
build: .
command: python app.py # Or your specific run command
ports:
- "5000:5000"
volumes:
- .:/app
depends_on:
- db
db:
image: postgres:13
volumes:
- postgres_data:/var/lib/postgresql/data/
environment:
- POSTGRES_USER=user
- POSTGRES_PASSWORD=password
- POSTGRES_DB=mydatabase
volumes:
postgres_data: