A comprehensive project management and collaboration platform built with modern web technologies. OrbitNuel provides teams with powerful tools for task management, file sharing, analytics, and real-time notifications.
- User Authentication & Authorization: Secure JWT-based authentication with role-based access control
- Organization Management: Multi-tenant architecture supporting multiple organizations
- Project Management: Create and manage projects with team collaboration
- Task Management: Comprehensive task tracking with Kanban board interface
- File Management: Upload, organize, and share files with cloud storage integration
- Real-time Notifications: WebSocket-based notifications for team communication
- Analytics Dashboard: Insights and metrics for project performance
- Global Search: Full-text search across projects, tasks, and files
- Responsive Design: Mobile-first design with modern UI components
- Real-time Updates: WebSocket integration for live notifications
- File Upload: Support for multiple file types with AWS S3 integration
- API Documentation: RESTful API with comprehensive endpoints
- Database: PostgreSQL with TypeORM for data persistence
- Security: Input validation, SQL injection prevention, CORS configuration
- Framework: NestJS (Node.js)
- Language: TypeScript
- Database: PostgreSQL
- ORM: TypeORM
- Authentication: JWT with Passport.js
- File Storage: AWS S3 (production) / Local storage (development)
- Real-time: Socket.io
- Validation: Class-validator
- Documentation: Swagger/OpenAPI
- Framework: Next.js 14 (React)
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: shadcn/ui
- State Management: Zustand
- HTTP Client: TanStack Query (React Query)
- Notifications: Sonner
- Charts: Recharts
- Forms: React Hook Form
- Package Manager: pnpm
- Code Quality: ESLint, Prettier
- Testing: Jest
- Containerization: Docker (planned)
- CI/CD: GitHub Actions (planned)
- Node.js 18+ and pnpm
- PostgreSQL 13+
- AWS S3 account (for file storage in production)
git clone <repository-url>
cd orbit-nuel# Install backend dependencies
cd backend
pnpm install
# Install frontend dependencies (from root)
cd ..
pnpm install# Create PostgreSQL database
createdb orbitnuel
# Or using psql
psql -U postgres -c "CREATE DATABASE orbitnuel;"# Database
DATABASE_URL=postgresql://postgres:Adenuel123450##@localhost:5432/orbitnuel
# JWT
JWT_SECRET=your-super-secret-jwt-key-change-in-production
# AWS S3 (for production file storage)
AWS_ACCESS_KEY_ID=your-aws-access-key
AWS_SECRET_ACCESS_KEY=your-aws-secret-key
AWS_REGION=us-east-1
AWS_S3_BUCKET=your-s3-bucket-name
# Application
NODE_ENV=development
PORT=3001Create .env.local in the root directory if you have frontend-specific environment variables.
cd backend
pnpm run start:devThe application will automatically create/sync database tables using TypeORM.
cd backend
pnpm run start:devpnpm run dev- Frontend: http://localhost:3000
- Backend API: http://localhost:3001
- Visit the application and click "Sign Up"
- Create your account with company details
- Verify your email (if email verification is enabled)
- Sign in with your credentials
- Navigate to the Projects section
- Click "Create Project"
- Add team members and set project details
- Start creating tasks and uploading files
Access the API documentation at http://localhost:3001/api when the backend is running.
orbit-nuel/
βββ app/ # Next.js frontend application
β βββ auth/ # Authentication pages
β βββ dashboard/ # Dashboard pages
β βββ api/ # API routes (if any)
β βββ globals.css # Global styles
βββ backend/ # NestJS backend application
β βββ src/
β β βββ analytics/ # Analytics module
β β βββ auth/ # Authentication module
β β βββ common/ # Shared utilities
β β βββ dashboard/ # Dashboard module
β β βββ files/ # File management module
β β βββ notifications/ # Notifications module
β β βββ organizations/ # Organization management
β β βββ projects/ # Project management
β β βββ search/ # Search functionality
β β βββ settings/ # User settings
β β βββ tasks/ # Task management
β β βββ users/ # User management
β β βββ main.ts # Application entry point
β βββ test/ # End-to-end tests
β βββ .env # Environment variables
βββ components/ # Reusable React components
βββ hooks/ # Custom React hooks
βββ lib/ # Utility libraries
βββ public/ # Static assets
βββ styles/ # Additional styles
cd backend
# Development
pnpm run start:dev # Start with hot reload
pnpm run start:prod # Production build
pnpm run build # Build application
pnpm run test # Run unit tests
pnpm run test:e2e # Run e2e tests
pnpm run test:cov # Test coverage
pnpm run lint # Run ESLint
pnpm run format # Run Prettier# Development
pnpm run dev # Start Next.js development server
pnpm run build # Build for production
pnpm run start # Start production server
pnpm run lint # Run ESLint
pnpm run type-check # TypeScript type checkingThe application uses JWT (JSON Web Tokens) for authentication:
- Access Token: Short-lived token for API access
- Refresh Token: Long-lived token for renewing access tokens
- Password Hashing: bcrypt for secure password storage
- Role-based Access: Admin, Manager, Member roles
- Files are stored locally in the
backend/uploads/directory - Accessible via
/uploads/route
- Files are uploaded to AWS S3
- Configurable bucket and region
- Public/private access control
POST /auth/register- User registrationPOST /auth/login- User loginPOST /auth/refresh- Refresh access token
GET /users- Get all usersGET /users/:id- Get user by IDPUT /users/:id- Update userDELETE /users/:id- Delete user
GET /organizations- Get organizationsPOST /organizations- Create organizationPUT /organizations/:id- Update organization
GET /projects- Get projectsPOST /projects- Create projectPUT /projects/:id- Update projectDELETE /projects/:id- Delete project
GET /tasks- Get tasksPOST /tasks- Create taskPUT /tasks/:id- Update taskDELETE /tasks/:id- Delete task
GET /files- Get filesPOST /files/upload- Upload fileGET /files/:id- Get file detailsDELETE /files/:id- Delete file
GET /analytics- Get analytics data
GET /notifications- Get user notificationsPOST /notifications- Create notificationPUT /notifications/:id/read- Mark as read
GET /dashboard/overview- Get dashboard overview
GET /search- Global search
# Backend tests
cd backend
pnpm run test # Unit tests
pnpm run test:e2e # End-to-end tests
pnpm run test:cov # Coverage report
# Frontend tests (if implemented)
pnpm run test- Build the application:
pnpm run build - Set production environment variables
- Configure PostgreSQL database
- Set up AWS S3 credentials
- Deploy using your preferred method (Docker, PM2, etc.)
- Build the application:
pnpm run build - Deploy to Vercel, Netlify, or your preferred platform
- Configure environment variables
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin feature/your-feature - Submit a pull request
- Follow TypeScript best practices
- Write tests for new features
- Update documentation as needed
- Use conventional commits
- Ensure code passes linting and formatting
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Create an issue on GitHub
- Contact the development team
- Check the documentation
- NestJS - Progressive Node.js framework
- Next.js - React framework
- Tailwind CSS - Utility-first CSS framework
- shadcn/ui - Modern UI components
- TypeORM - TypeScript ORM
- Socket.io - Real-time communication
Built with β€οΈ using modern web technologies