- Backend: Routers (API), Services (business logic), Utils (shared helpers), Models/Schemas (domain-driven)
- Frontend: Components (UI), Services (API/business logic), Utils (shared helpers)
- Automation: Nix shell for unified dev env, GitHub Actions for CI (lint, type-check, test)
- Docs: See
docs/feature-development/ai-implementation.md
for full details
A modern, scalable platform for managing hackathon events, built with NixOS, Docker, and modern web technologies.
-
User Management
- Authentication & Authorization
- Team Formation
- Profile Management
-
Project Management
- Template-based Project Creation
- Resource Allocation
- Deployment Automation
-
Judging System
- Criteria Management
- Scoring System
- Feedback Collection
-
Infrastructure
- Container Orchestration
- Automatic SSL/TLS
- Security with CrowdSec
- Monitoring & Metrics
- Frontend: Next.js, TypeScript, TailwindCSS
- Backend: FastAPI, SQLAlchemy, Pydantic
- Database: PostgreSQL, Redis
- Infrastructure: Docker, Traefik, CrowdSec
- Monitoring: Prometheus, Grafana
- NixOS or Linux system
- Docker & Docker Compose
- Git
- Clone the repository:
git clone https://github.com/fr4iser90/NCC-HackathonManager
cd NCC-HackathonManager
- Set up environment:
# Copy example environment files
cp .env.example .env
# Start services
docker-compose up -d
- Initialize database:
# Run migrations
docker-compose exec api alembic upgrade head
# Create admin user
docker-compose exec api python scripts/create_admin.py
- Access the platform:
- Frontend: http://localhost:3000
- API Docs: http://localhost:8000/docs
- Admin: http://localhost:3000/admin
# Start backend services
cd backend
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload
# Start frontend development server
cd frontend
npm install
npm run dev
# Backend tests
cd backend
pytest
# Frontend tests
cd frontend
npm test
See Deployment Guide for detailed instructions.
Quick deployment:
# 1. Configure environment
cp .env.example .env
vim .env
# 2. Start services
docker-compose -f docker-compose.prod.yml up -d
# 3. Initialize database
docker-compose exec api alembic upgrade head
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- NixOS Community
- Docker Community
- FastAPI
- Next.js
- All contributors
Recommended:
- With Nix:
nix-shell
(all tools and commands as described in the docs) - Without Nix:
- Python dependencies:
pip install -r requirements.txt
- Node dependencies:
cd frontend && npm install
- Start backend:
uvicorn api.app.main:app --reload
or via Docker
- Python dependencies:
Note: The CI/CD pipeline always uses Nix for maximum reproducibility.
For more details: docs/setup/environment.md