Project Structure
This repository follows a clean, modular structure:
citadel-dashboard/
├── backend/ # Backend server (Node.js, Express, TypeScript)
├── frontend/ # Frontend application (React, TypeScript, Vite)
├── infra/ # Infrastructure files (migrations, configs)
└── package.json # Root monorepo configuration
Quick Start
Prerequisites
- Docker and Docker Compose
- Node.js 16+
- Git
1. Clone the repository
git clone https://github.com/naviNBRuas/citadel-dashboard.git
cd citadel-dashboard
2. Start development environment
This spins up Postgres, Redis, and Vault.
docker-compose up -d
3. Install dependencies
npm install
4. Run development servers
Start both backend and frontend in development mode:
npm start
Or run them separately:
# In one terminal
npm run dev:backend
# In another terminal
npm run dev:frontend
Access the application at http://localhost:3000.
Backend
The backend is a Node.js/Express server built with TypeScript. It provides RESTful APIs for all platform functionality.
Key Features
- JWT-based authentication with refresh tokens
- Role-based access control (RBAC)
- Social media integration adapters
- Credential storage in HashiCorp Vault with encryption
- Background job processing with BullMQ
Backend Structure
backend/
├── src/ # Source code
│ ├── services/ # Business logic
│ ├── middleware/ # Express middleware
│ └── config/ # Configuration files
├── scripts/ # Utility scripts
├── tests/ # Test files
└── package.json # Backend package configuration
Frontend
The frontend is a modern React dashboard built with TypeScript and Vite. It features:
- Responsive design that works on desktop, tablet, and mobile
- Dark/light mode based on system preferences
- Role-based navigation and feature access
- Enterprise feature protection with license validation
Frontend Structure
frontend/
├── src/ # Source code
│ ├── features/ # Feature-based modules
│ ├── shared/ # Shared components and utilities
│ └── services/ # API service clients
├── public/ # Static assets
└── package.json # Frontend package configuration
Infrastructure
Infrastructure files for database migrations and deployment configurations.
infra/
├── migrations/ # Database migration scripts
└── db/ # Database configuration files
Development
Available Scripts
-
npm start- Start both backend and frontend in development mode -
npm run dev:backend- Start backend server in development mode -
npm run dev:frontend- Start frontend dashboard in development mode -
npm run build- Build both backend and frontend for production -
npm test- Run tests for all workspaces
Environment Variables
The backend requires several environment variables to be set. See backend/.env.example for a complete list.
Documentation
For detailed documentation, see:
Contributing
We welcome contributions! Please see our Contributing Guide for details on how to get started.
Note: Please respect the boundaries between the AGPLv3 core and proprietary enterprise addons when submitting PRs.
License
This project is licensed under the AGPLv3 License - see the License file for details.
Support
For support, please contact:
- General Inquiries: founder@nbr.company
- Technical Support: founder@nbr.company
- Security Issues: security@nbr.company
See Security Policy for our security policy.