Skip to content

adenueltech/orbit-nuel-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

10 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

OrbitNuel

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.

πŸš€ Features

Core Functionality

  • 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

Technical Features

  • 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

πŸ› οΈ Tech Stack

Backend

  • 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

Frontend

  • 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

DevOps & Tools

  • Package Manager: pnpm
  • Code Quality: ESLint, Prettier
  • Testing: Jest
  • Containerization: Docker (planned)
  • CI/CD: GitHub Actions (planned)

πŸ“‹ Prerequisites

  • Node.js 18+ and pnpm
  • PostgreSQL 13+
  • AWS S3 account (for file storage in production)

πŸš€ Installation & Setup

1. Clone the Repository

git clone <repository-url>
cd orbit-nuel

2. Install Dependencies

# Install backend dependencies
cd backend
pnpm install

# Install frontend dependencies (from root)
cd ..
pnpm install

3. Database Setup

# Create PostgreSQL database
createdb orbitnuel

# Or using psql
psql -U postgres -c "CREATE DATABASE orbitnuel;"

4. Environment Configuration

Backend (.env)

# 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=3001

Frontend Environment (if needed)

Create .env.local in the root directory if you have frontend-specific environment variables.

5. Database Migration

cd backend
pnpm run start:dev

The application will automatically create/sync database tables using TypeORM.

6. Start Development Servers

Terminal 1: Backend

cd backend
pnpm run start:dev

Terminal 2: Frontend

pnpm run dev

7. Access the Application

πŸ“– Usage

User Registration & Login

  1. Visit the application and click "Sign Up"
  2. Create your account with company details
  3. Verify your email (if email verification is enabled)
  4. Sign in with your credentials

Creating Your First Project

  1. Navigate to the Projects section
  2. Click "Create Project"
  3. Add team members and set project details
  4. Start creating tasks and uploading files

API Documentation

Access the API documentation at http://localhost:3001/api when the backend is running.

πŸ—οΈ Project Structure

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

πŸ”§ Available Scripts

Backend Scripts

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

Frontend Scripts

# 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 checking

πŸ” Authentication

The 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

πŸ“ File Storage

Development

  • Files are stored locally in the backend/uploads/ directory
  • Accessible via /uploads/ route

Production

  • Files are uploaded to AWS S3
  • Configurable bucket and region
  • Public/private access control

πŸ” API Endpoints

Authentication

  • POST /auth/register - User registration
  • POST /auth/login - User login
  • POST /auth/refresh - Refresh access token

Users

  • GET /users - Get all users
  • GET /users/:id - Get user by ID
  • PUT /users/:id - Update user
  • DELETE /users/:id - Delete user

Organizations

  • GET /organizations - Get organizations
  • POST /organizations - Create organization
  • PUT /organizations/:id - Update organization

Projects

  • GET /projects - Get projects
  • POST /projects - Create project
  • PUT /projects/:id - Update project
  • DELETE /projects/:id - Delete project

Tasks

  • GET /tasks - Get tasks
  • POST /tasks - Create task
  • PUT /tasks/:id - Update task
  • DELETE /tasks/:id - Delete task

Files

  • GET /files - Get files
  • POST /files/upload - Upload file
  • GET /files/:id - Get file details
  • DELETE /files/:id - Delete file

Analytics

  • GET /analytics - Get analytics data

Notifications

  • GET /notifications - Get user notifications
  • POST /notifications - Create notification
  • PUT /notifications/:id/read - Mark as read

Dashboard

  • GET /dashboard/overview - Get dashboard overview

Search

  • GET /search - Global search

πŸ§ͺ Testing

# 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

πŸš€ Deployment

Backend Deployment

  1. Build the application: pnpm run build
  2. Set production environment variables
  3. Configure PostgreSQL database
  4. Set up AWS S3 credentials
  5. Deploy using your preferred method (Docker, PM2, etc.)

Frontend Deployment

  1. Build the application: pnpm run build
  2. Deploy to Vercel, Netlify, or your preferred platform
  3. Configure environment variables

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/your-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin feature/your-feature
  5. Submit a pull request

Development Guidelines

  • Follow TypeScript best practices
  • Write tests for new features
  • Update documentation as needed
  • Use conventional commits
  • Ensure code passes linting and formatting

πŸ“„ License

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

πŸ“ž Support

For support and questions:

  • Create an issue on GitHub
  • Contact the development team
  • Check the documentation

πŸ™ Acknowledgments


Built with ❀️ using modern web technologies

About

OrbitNuel - Project Management & Collaboration Platform A comprehensive project management and team collaboration platform designed to streamline workflow management, enhance team productivity, and provide real-time insights into project progress.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors