A modern, real-time collaborative platform built with cutting-edge technologies for seamless team collaboration.
- β¨ Features
- πΌοΈ Screenshots
- π οΈ Tech Stack](#οΈ-tech-stack)
- π Getting Started
- π¦ Installation
- π§ Configuration
- ποΈ Project Structure
- π CI/CD Pipeline
- π€ Contributing
- π Documentation
- π License
- Real-time Collaboration: Multiple users can edit documents simultaneously with live cursors and presence tracking
- Workspace Management: Create and organize workspaces with folders and files
- Authentication: Secure user authentication with Supabase Auth
- File Management: Create, edit, and organize files and folders
- Banner Upload: Add custom banners to workspaces, folders, and files
- Emoji Picker: Customize icons for workspaces, folders, and files
- Subscription Management: Premium features with Stripe integration
- Dark Mode Support: Full dark mode support for all components including Quill editor
- Responsive Design: Works seamlessly on desktop and mobile devices
- Inline Editing: Rename workspaces, folders, and files directly in the interface
- Real-time Updates: Changes appear instantly for all collaborators
- Profile Management: Upload and manage profile pictures
- TypeScript: Full TypeScript support for type safety
- ESLint: Code quality and consistency
- CI/CD Pipeline: Automated testing, building, and deployment
- Comprehensive Documentation: Detailed setup and troubleshooting guides
- [Next.js 15https://nextjs.org/) - React framework with App Router
- TypeScript - Type safety and better DX
- Tailwind CSS - Utility-first CSS framework
- shadcn/ui - Beautiful UI components
- Quill Editor - Rich text editor with real-time collaboration
- Lucide React - Beautiful icons
- Supabase - Backend as a service
- PostgreSQL database
- Real-time subscriptions
- Authentication
- Storage
- Drizzle ORM - Type-safe database queries
- Supabase Realtime - Real-time subscriptions
- Quill Cursors - Collaborative cursors
- WebSocket - Real-time communication
- Yarn - Package manager
- ESLint - Code linting
- GitHub Actions - CI/CD pipeline
- Vercel - Deployment platform
- Node.js 18rn package manager
- Supabase account
- Stripe account (for payments)
- Clone the repository
git clone https://github.com/frckbrice/collaborative-platform.git
cd collaborative-platform
- Install dependencies
yarn install
- Set up environment variables
cp env.example .env.local
-
Configure your environment variables in
.env.local
-
Start the development server
yarn dev
6 Open [http://localhost:3000](http://localhost:3000 in your browser
Create a .env.local
file with the following variables:
# Supabase Configuration
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_service_role_key
# Database
NEXT_PUBLIC_DATABASE_URL=postgres://postgres:postgres@localhost:54322postgres
# Stripe Configuration (for payments)
STRIPE_SECRET_KEY=your_stripe_secret_key
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=your_stripe_publishable_key
STRIPE_WEBHOOK_SECRET=your_stripe_webhook_secret
# JWT Secret (must match the one in docker-compose.yml)
JWT_SECRET=your-super-secret-jwt-token-with-at-least-32racters-long
- Run the database migrations:
supabase db reset
- Set up storage buckets and policies as described in the setup documentation
# Install dependencies
yarn install
# Start development server
yarn dev
# Run linting
yarn lint
# Run tests
yarn test
# Build for production
yarn build
- Create a new Supabase project
- Enable the following services:
- Authentication
- Database
- Storage
- Realtime
- Configure authentication providers4up storage buckets for file uploads
1e a Stripe account 2. Get your API keys from the dashboard 3. Configure webhooks for payment events 4. Set up subscription products
For local development with Supabase:
# Install Supabase CLI
npm install -g supabase
# Start local Supabase
supabase start
# Reset database
supabase db reset
src/
βββ app/ # Next.js15app router
β βββ (auth)/ # Authentication pages
β βββ (main)/ # Main application pages
β βββ (site)/ # Landing page
β βββ api/ # API routes
βββ components/ # React components
β βββ features/ # Feature-specific components
β β βββ auth/ # Authentication components
β β βββ main/ # Main app components
β β βββ settings/ # Settings components
β βββ global-components/ # Shared components
β βββ ui/ # UI components (shadcn/ui)
βββ lib/ # Utilities and configurations
β βββ providers/ # React context providers
β βββ supabase/ # Supabase configuration
β βββ stripe/ # Stripe configuration
βββ utils/ # Helper functions
The project includes automated CI/CD workflows:
- Linting and Type Checking: Ensures code quality
- Testing: Runs test suite
- Building: Builds the application
- Security Scanning: Checks for vulnerabilities
- Build Artifacts: Uploads build files
- Automatic Deployment: Deploys to Vercel on push
- Environment Management: Separate staging and production environments
- Branch-based Deployment:
main
branch β Productiondevelop
branch β Preview
We welcome contributions! This project is free for collaboration.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Make your changes4ests if applicable**
- Commit your changes:
git commit -m 'Add amazing feature'
- Push to the branch:
git push origin feature/amazing-feature
7mit a pull request**
- Follow the existing code style
- Add tests for new features
- Update documentation as needed
- Ensure all CI checks pass
- Use TypeScript for all new code
- Follow the project's commit message conventions
- Be respectful and inclusive
- Help others learn and grow
- Provide constructive feedback
- Follow the project's coding standards
- Troubleshooting Guide - Common issues and solutions
- Environment Setup - Environment variables reference
- Database Schema - Database migrations and schema
- API Documentation - API endpoints documentation
- Supabase CLI Issues: Configuration and setup problems
- Docker Container Problems: Container conflicts and port issues
- Email Configuration: Mailpit setup and SMTP configuration
- Realtime Collaboration: Connection and presence tracking issues
- Authentication Issues: User management and JWT problems
- File Upload Problems: Profile pictures and storage issues
- Connect your GitHub repository to Vercel
- Configure environment variables in Vercel dashboard
- Deploy automatically on push to
main
branch
# Build the application
yarn build
# Start the production server
yarn start
Make sure to set all required environment variables in your deployment platform:
NEXT_PUBLIC_SUPABASE_URL
NEXT_PUBLIC_SUPABASE_ANON_KEY
SUPABASE_SERVICE_ROLE_KEY
STRIPE_SECRET_KEY
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY
STRIPE_WEBHOOK_SECRET
JWT_SECRET
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js - React framework
- Supabase - Backend as a service
- Quill Editor - Rich text editor
- shadcn/ui - UI components
- Stripe - Payment processing
- Tailwind CSS - CSS framework
- Drizzle ORM - Database ORM