Skip to content

Repository files navigation

NIddle

CI code style: biome GitHub contributors GitHub Issues or Pull Requests GitHub License

Overview

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.


Features

  • 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.

Tech Stack & Architecture

NIddle is organized as an npm monorepo with two main applications:


Quick Start

Get NIddle up and running locally with Docker Compose:

1. Prerequisites

2. Clone & Configure

git clone https://github.com/NIAEFEUP/NIddle.git
cd NIddle
cp .env.example .env.docker

Note: In .env.docker, ensure DATABASE_MASTER and DATABASE_SLAVE are set to postgres.

3. Run the Application

make up
# Or without make: docker compose up -d --build

4. Access Services

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 down

API Documentation

NIddle includes built-in interactive Swagger documentation. When the backend API is running, access the documentation at:

http://localhost:3001/api/docs

Contributing & Development

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:

👉 Contributing Guide


License

This project is licensed under the GPL-3.0 License - see the LICENSE file for details.

About

Content Management System for uni

Topics

Resources

Contributing

Stars

13 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages