NIddle is a service dedicated to managing and providing static data for the UNI mobile application. It serves as a central hub for university-related information such as faculty and course events, academic services, and student association content.
The primary goal of NIddle is to provide a reliable, easily maintainable API and administration interface for the UNI app, ensuring that static resources are kept up-to-date and accessible without requiring frequent mobile application releases.
- Stable REST API: Consistent and reliable API for faculty events, course information, and student association data.
- Admin Web Interface: Modern web dashboard for managing university data and resources.
- Interactive API Documentation: Built-in interactive documentation powered by Swagger.
- Database Management & Seeding: Automated schema synchronization and fixture data seeding.
- TypeScript First: End-to-end type safety across backend and frontend services.
- Containerized & CI/CD Ready: Dockerized services, reproducible Nix shells, and automated GitHub Actions workflows.
NIddle is organized as an npm monorepo with two main applications:
- Backend API (
apps/api): NestJS, TypeORM, PostgreSQL, Swagger - Frontend Web App (
apps/web): React 19, Vite, Tailwind CSS, TanStack Query - Tooling & Infrastructure: Docker, Biome, Jest, Nix
Get NIddle up and running locally with Docker Compose:
- Docker & Docker Compose
- Make (optional, but recommended)
git clone https://github.com/NIAEFEUP/NIddle.git
cd NIddle
cp .env.example .env.dockerNote: In
.env.docker, ensureDATABASE_MASTERandDATABASE_SLAVEare set topostgres.
make up
# Or without make: docker compose up -d --build| Service | URL | Description |
|---|---|---|
| Frontend Web App | http://localhost:3000 | Administration Web Interface |
| Backend API | http://localhost:3001 | NestJS REST API |
| Swagger Docs | http://localhost:3001/api/docs | Interactive API Documentation |
| PostgreSQL | localhost:5432 |
Database Service |
To shut down the services:
make downNIddle includes built-in interactive Swagger documentation. When the backend API is running, access the documentation at:
http://localhost:3001/api/docs
We welcome contributions! For detailed instructions on local development setups, native workflows, the Nix development shell, testing, linting/formatting rules, database seeding, and our pull request process, please read our:
This project is licensed under the GPL-3.0 License - see the LICENSE file for details.