The Student Information System (SIS) is a high-performance, distributed management platform developed for the System Programming course. This final v3.0 release represents a fully synchronized, containerized ecosystem where the C++ backend, PostgreSQL database, and environment configurations are seamlessly integrated.
The architecture utilizes a dual-service bridge:
- Application Container
(sis-app): A C++17 CLI engine managing business logic and secure transactions. - Database Container
(sis-db): A PostgreSQL 15 instance optimized for persistent data storage and rapid schema initialization.
This project is developed by a team of 3 students for the System Programming course.
| Role | Student Name | Responsibility | GitHub Profile | Docker-Hub Profile |
|---|---|---|---|---|
| Project Manager | SILA ÖZGEL | Repo Management, Docs, Coordination | [silaozgel] | [silaozgel1] |
| Docker Engineer | GÖKTUĞ KARACA | Docker Infrastructure, CI/CD | [krcgoktug] | [goktugkaraca] |
| C++ Developer | MİRAY PINARBAŞI | App Development, Database Logic | [MirayPinarbasi] | [miraypinarbasi] |
-
Full CRUD Lifecycle: Interactive management of student records (Create, Read, Update, Delete).
-
Environment Decoupling: Secure credential management via
.env(No hardcoded passwords in production). -
Healthcheck Orchestration: Integrated
depends_onlogic ensuringsis-appwaits forsis-dbto be "Healthy". -
Data Integrity: Multi-layered validation using
std::regexand PostgreSQL unique constraints. -
Resource Management: Strict adherence to RAII for exception-safe database connections and transactions.
-
Persistent Storage: Named Docker Volumes ensure student records persist across container rebuilds.
- Operating System: Ubuntu Linux
- Language: C++ (Standard 11/17)
- Database: PostgreSQL (via
libpqxxlibrary) - Orchestration: Docker Compose v3.8 (Production Image Tag:
v3.0) - Version Control: Git & GitHub (Git Flow Strategy)
- CI/CD: Automated build and push pipeline using GitHub Actions.
- Build System: Migrated to CMake for stable dependency management.
- Optimization: Removed git and unnecessary packages from production images to reduce size.
- Testing: Unit Testing (Negative Connection Tests) and Integration Testing (Full CRUD Workflow).
We have verified the system's reliability through extensive testing:
- Sync Audit: Verification that
.envvariables match C++ connection strings. - Integration Tests: Verifying the full CRUD lifecycle inside the Docker network.
- Log Analysis: Real-time monitoring of database handshakes via docker logs.
Official images for this project will be pushed to Docker Hub by Student 2. These images are mandatory for the final evaluation.
| Component | Docker Hub Repository | Tag | Status |
|---|---|---|---|
| PostgreSQL DB | postgres (Official Image) |
15 |
Configured via Volume |
| C++ Application | goktugkaraca/sis-project-app | v3.0 |
Production Ready |
- Docker & Docker Compose
- Git
For detailed installation instructions, please refer to the INSTALL.md file.
For the user manual and CLI command examples, please refer to the MANUAL.md file.
The project follows a strict 4-week development Schedule:
- Week 1: Project Setup, Planning, and Repository Initialization
- Week 2: Docker Infrastructure Setup (Dockerfile, Compose, Network)
- Week 3: C++ Application Development (CRUD, Transactions)
- Week 4: Final Integration, Testing, and Presentation Prep
Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
- Branch Strategy: Features must be developed in
feature/*branches. - Direct Push: Strictly prohibited on
mainanddevelopbranches.
This project is created for educational purposes within the scope of the System Programming course.