Repository with supporting code for PSI (Pokročilé Softwarové Inženýrství) course at Technická Univerzita of Liberec (TUL).
Primarily the repository hosts a demo project - Student Projects Catalogue (SPC) - which is a catalogue of student projects created at various courses at TUL and supports evaluating courses and peers.
The Student Projects Catalogue:
- Lists student IT projects developed at TUL (for example within PSI).
- Allows filtering by technologies, names, courses, academic term, and students.
- Provides details about a selected project (link to GitHub & live app, list of authors, description).
- Authenticated lecturers can create courses, seed student projects (by supplying a project title and student owner email), and submit per-project evaluations with scores and textual feedback across multiple configurable criteria.
- Authenticated students receive an invite to complete their project details (title, repository link, live app link, description, technologies, and team members). They can also submit course feedback and peer feedback for teammates.
- Students can view the evaluations and feedback they received once all lecturer and peer feedback for their project has been submitted.
The following diagram depicts the layout of the project components and core technologies:
flowchart TD
UI[Frontend - React SPA]
API[Backend - Python / FastAPI]
DB[(Database - PostgreSQL)]
UI -- HTTPS/JSON --> API
API -- SQLModel --> DB
- This
README.mdcontains quick introduction to the product, onboarding guide, local setup of the project and a rough user guide. docs/SPECIFICATION.md(in-progress) provides product-oriented description: business objectives and motivation, planned user scenarios, functional requirements and scope.docs/DESIGN.md(in-progress) contains engineering-oriented documentation: technical architecture, UML diagrams, API contracts and DB schema.
Ensure you have Docker Desktop running, then start the database and monitoring stack from the project root:
docker compose up -dcd backend
python -m venv .venv
source .venv/bin/activate # Or .venv\Scripts\Activate.ps1
pip install -r requirements.txt
./start.sh --reloadAPI accessible at: http://127.0.0.1:8000/docs
cd frontend
npm install
npm run devWeb UI accessible at: http://127.0.0.1:3000
When running via Docker Compose, the following tools are available:
- Traces (Jaeger): http://127.0.0.1:16686 - Search for "student-projects-catalogue-backend" to see request traces and DB queries.
- Metrics (Prometheus): http://127.0.0.1:9090 - Raw metrics from the collector and backend.
- Visualization (Grafana): http://127.0.0.1:3001 - Unified dashboard (Login: admin/admin).
- Logs:
- Native: Streamed to your terminal as structured JSON.
- Docker: Run
docker compose logs -f backendto see combined application and OTel logs.
examples/monitoring— FastAPI app demonstrating BigTech monitoring best practices: structured logging, Prometheus metrics, distributed tracing with OpenTelemetry/Jaeger. Includes a Docker Compose stack (Jaeger + Prometheus + Grafana).
- Milestone 1: prototype (3.3.2026): Specification, prototype & high-level design.
- Milestone 2: core functionality (7.4.2026): MVP is ready, CI/CD is working (dev environment).
- Product launch (5.5.2026): Final demo, code/test/documentation is ready, deployed to Azure (dev & prod) with NFRs met (monitoring).
- Roman Špánek (@roman-spanek) – Clean code, Git, UML, Testing, CI/CD
- Lukáš Ježek (@ljezek) – AI-assisted development, Infrastructure, Azure
- Jana Vitvarová (@janavitvar) – Planning, SCRUM
TODO(ljezek): Complete the following items to fulfill the NFRs of PSI:
- Production: Link to the app in Production and Dev environments
- Monitoring: Link to Azure App Insights (monitoring dashboard)
- Tests: Link to code coverage and latest unit & integration test results on
mainbranch - CI/CD: Link to GitHub actions forming fully autonomous delivery of (working) code from
mainthroughdevtoprodenvironments in a selected cloud (Azure is recommended). - SLO: Aiming at 99.5% availability - provide a link to SLI dashboard