UniSpace is a university-space reservation system developed as a two-person academic project for the Secure Software Design course at the University of Calabria (UniCal).
The project uses a shared REST backend with two independent clients: a SvelteKit web application and a Python terminal interface.
| Repository | Purpose | Main technologies |
|---|---|---|
backend |
REST API, domain logic, authentication, authorization and testing | Python, Django, Django REST Framework, pytest |
web-frontend |
Browser-based client | SvelteKit, Svelte, TypeScript, Playwright |
tui |
Terminal client for the same REST API | Python, Rich, Requests, pytest |
UniSpace models university buildings and reservable spaces and provides workflows for students and professors.
The system includes:
- user registration and token-based authentication
- student and professor roles
- department-aware user and space data
- buildings and multiple space types
- reservation creation and cancellation
- reservation approval workflows
- server-side authorization rules
- a reusable REST API consumed by multiple clients
- automated tests
- Swagger/ReDoc API documentation on the backend
+----------------------+
| UniSpace Backend |
| Django + DRF REST API|
+----------+-----------+
|
+-------------+-------------+
| |
+----------v-----------+ +----------v-----------+
| Web Frontend | | TUI |
| SvelteKit/TypeScript | | Python + Rich |
+----------------------+ +----------------------+
Both clients use the same API and authentication model, while authorization is enforced on the server.
The project was created for Secure Software Design and explores software-engineering concerns including:
- API-oriented architecture
- authentication and authorization
- role-based access control
- validation and error handling
- separation between backend and client applications
- automated testing
- maintainable multi-repository development
Two-person development team:
The course project is complete. The repositories are preserved as an academic and portfolio reference.