Faculytics is an analytics platform designed to integrate seamlessly with Moodle. This repository contains the backend API built with NestJS.
- Framework: NestJS
- ORM: MikroORM with PostgreSQL
- Validation: Zod & class-validator
- Documentation: Swagger/OpenAPI
- Node.js: v22.x or later
- PostgreSQL: A running instance of PostgreSQL
- Moodle: A Moodle instance with Mobile Web Services enabled.
npm installCopy the sample environment file and update the variables:
cp .env.sample .envRequired Variables:
DATABASE_URL: Your PostgreSQL connection string (supports Neon.tech SSL).MOODLE_BASE_URL: The base URL of your Moodle instance (e.g.,https://moodle.example.com).JWT_SECRET&REFRESH_SECRET: Secure strings for token signing.CORS_ORIGINS: JSON array of allowed origins (e.g.,["http://localhost:4100"]).
This project uses MikroORM migrations. By default, migrations are automatically applied when the application starts.
To manage migrations manually:
# Create a new migration
npx mikro-orm migration:create
# Apply pending migrations
npx mikro-orm migration:up
# Check migration status
npx mikro-orm migration:list# Development (with watch mode)
npm run start:dev
# Production mode
npm run build
npm run start:prodOnce the application is running, you can access the interactive Swagger documentation at:
http://localhost:5200/swagger
- Linting:
npm run lint - Formatting:
npm run format - Husky: Pre-commit hooks are enabled to ensure code quality (Linting + Formatting).
# Unit tests
npm run test
# E2E tests
npm run test:e2e
# Test coverage
npm run test:covThis project is UNLICENSED.