{"id":23074765,"url":"https://github.com/bursasha/flask-postgresql-docker-classroom-manager","last_synced_at":"2026-05-04T05:44:45.981Z","repository":{"id":246422000,"uuid":"821082173","full_name":"bursasha/flask-postgresql-docker-classroom-manager","owner":"bursasha","description":"A robust backend API for managing university classroom reservations, built with Python, Flask, SQLAlchemy, and Docker, ensuring efficient database interactions and seamless containerized deployment 🏫","archived":false,"fork":false,"pushed_at":"2024-06-27T19:30:21.000Z","size":51,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-09T01:17:27.879Z","etag":null,"topics":["crud-api","docker-compose","dockerfile","flask-restful","flask-sqlalchemy","jwt-tokens","mvc-architecture","postgresql-database","python-app","python3","repository-pattern","restful-api","scalable-architecture"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bursasha.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-27T19:19:08.000Z","updated_at":"2024-06-29T21:01:00.000Z","dependencies_parsed_at":"2024-06-27T22:54:07.622Z","dependency_job_id":null,"html_url":"https://github.com/bursasha/flask-postgresql-docker-classroom-manager","commit_stats":null,"previous_names":["bursasha/flask-postgresql-docker-classroom-manager"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bursasha%2Fflask-postgresql-docker-classroom-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bursasha%2Fflask-postgresql-docker-classroom-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bursasha%2Fflask-postgresql-docker-classroom-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bursasha%2Fflask-postgresql-docker-classroom-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bursasha","download_url":"https://codeload.github.com/bursasha/flask-postgresql-docker-classroom-manager/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246998138,"owners_count":20866690,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["crud-api","docker-compose","dockerfile","flask-restful","flask-sqlalchemy","jwt-tokens","mvc-architecture","postgresql-database","python-app","python3","repository-pattern","restful-api","scalable-architecture"],"created_at":"2024-12-16T08:29:30.731Z","updated_at":"2026-05-04T05:44:40.956Z","avatar_url":"https://github.com/bursasha.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# **Classroom-Manager REST API Flask Project** 🏫\n\n## Project Overview 📝\nThe Classroom-Manager project is designed as a robust educational resource management system, featuring:\n\n- **Purpose**: Facilitate the management of educational resources within academic institutions, such as classrooms, departments, and user accounts.\n- **Core Feature**: High-quality _RESTful API_ that allows for efficient management of user records, classes, and classroom bookings.\n- **Target Audience**: Ideally suited for schools and universities looking to digitize and streamline their resource allocation and scheduling processes.\n- **API Functionality**: Provides a scalable and secure interface for developers to integrate and extend functionalities seamlessly.\n- **Technology Stack**: Utilizes modern technologies including `Flask` for the backend, `SQLAlchemy` for ORM, and `PostgreSQL` as the database.\n\n## How to Run the Application 🔧\nTo get the application up and running, follow these steps:\n1. **Setup with Docker**:\n  - Clone the repository to your local machine.\n  - Navigate to the backend directory of the project.\n  - Use Docker Compose to build and run the containers:\n    ```bash\n    docker-compose up -d\n    ```\n\n2. **Running the Application**:\n  - Access the backend services via [localhost:6200/docs](http://localhost:6200/docs) where you can interact with the API through its Swagger documentation.\n\n## How to Stop the Application 🔌\nTo stop and remove the application containers, use the following Docker Compose commands:\n- **Stopping the application**:\n  ```bash\n  docker-compose stop\n  ```\n\n- **Removing the application**:\n  ```bash\n  docker-compose down\n  ```\n\n## Architecture 🔍\nThe backend architecture of Classroom-Manager is designed around a clean separation of concerns, promoting maintainability and scalability:\n- **Presentation Layer** (`/routes`): Manages API endpoints, serving as the interface that receives requests and sends responses.\n- **Business Logic Layer** (`/services`): Processes data, applying business rules and handling operations like user authentication, resource management, etc.\n- **Data Access Layer** (`/repositories` \u0026 `/models`): Responsible for database interactions, ensuring data integrity and providing an abstraction layer over direct database manipulations.\n\n## Key Directories 📍\n- **`/migrations`**: Contains database migration scripts.\n- **`/src`**: The heart of the application where the main logic resides.\n  - **`/app`**: The core application folder.\n    - **`/repositories`**: Contains code interacting with the database.\n    - **`/models`**: Defines the data models.\n    - **`/orm`**: Object-relational mapping setup.\n    - **`/serializations`**: Code for serializing and deserializing data.\n    - **`/routes`**: Defines the endpoints of the API.\n    - **`/services`**: Business logic of the application.\n\n## Technologies 🌐\n- **`Flask`**: A lightweight framework for building web applications in `Python`.\n- **`SQLAlchemy`**: An ORM tool for database operations, enhancing code maintainability and security.\n- **`JWT` Libraries**: Handling authentication using JSON Web Tokens.\n- **`Docker`**: Containerization of the application ensuring consistent environments.\n- **`PostgreSQL`**: The primary relational database used for storing all application data.\n\n## API Capabilities 💡\n- **User Management**: Register, authenticate, update, and manage user profiles.\n- **Department Management**: Create, update, delete, and retrieve departments within an organization.\n- **Building Management**: Handle operations related to building resources including CRUD operations.\n- **Classroom Management**: Manage classrooms, including scheduling and booking functionalities.\n- **Request Management**: Handle booking requests for classrooms, managing approvals and rejections.\n\n## Database Interaction 🗃\nThe application uses `PostgreSQL` as its database. \nThe **ORM** (Object-Relational Mapping) provided by `SQLAlchemy` abstracts the SQL layer, offering a high-level interface for database operations. \nThe **repository pattern** further encapsulates the logic needed to access data sources, ensuring that the business logic is not dependent on database specifics.\n\n## Docker Configuration 🐳\nThe application runs in Docker containers. The `docker-compose.yml` file orchestrates multiple services:\n- **Flask Application Container**: Hosts the `Flask` application.\n- **PostgreSQL Container**: Manages the database service, isolated from the application logic.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbursasha%2Fflask-postgresql-docker-classroom-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbursasha%2Fflask-postgresql-docker-classroom-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbursasha%2Fflask-postgresql-docker-classroom-manager/lists"}