A mobile-first web application that helps content creators and influencers manage their brand partnerships, track payments, and organize communications in one centralized platform.
- Brand Management: Organize and track brand contacts and relationships
- Collaboration Tracking: Monitor deal progress with status workflows
- Payment Management: Track expected payments and record credits with partial payment support
- Communication Logs: Maintain records of brand communications across channels
- File Attachments: Upload and organize contracts, briefs, and deliverables
- Financial Dashboard: Overview of earnings, pending payments, and overdue amounts
- Mobile-First Design: Optimized for mobile devices with large touch targets
Monorepo Structure:
collab-khata/
βββ apps/
β βββ frontend/ # Next.js 14 (App Router) + TypeScript + TailwindCSS
β βββ backend/ # Python FastAPI + SQLAlchemy + PostgreSQL
βββ docker-compose.yml # PostgreSQL development database
βββ package.json # Workspace configuration
Tech Stack:
- Frontend: Next.js 14, TypeScript, TailwindCSS, shadcn/ui
- Backend: FastAPI, SQLAlchemy 2.0, Alembic, JWT Auth
- Database: PostgreSQL
- Development: Docker Compose
- Node.js 18+ and npm
- Python 3.9+
- Docker and Docker Compose
git clone <repository-url>
cd collab-khata
npm install# Copy environment template
cp .env.example .env
# Edit .env with your configuration
# The defaults work for local development# Start PostgreSQL with Docker
npm run db:up
# Wait for database to be ready (check with docker-compose logs postgres)cd apps/backend
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Run database migrations
alembic upgrade head
# Start FastAPI server
cd ../..
npm run dev:backendcd apps/frontend
# Install dependencies
npm install
# Start Next.js development server
npm run dev
# Or from root directory
cd ../..
npm run dev:frontend# From root directory - runs both frontend and backend
npm run dev- Access the Application: Open http://localhost:3000
- Register Account: Create a new creator account
- Add Brands: Set up your brand contacts
- Create Collaborations: Track your brand deals and partnerships
- Manage Payments: Record payment expectations and credits
- Monitor Dashboard: View financial summaries and overdue payments
# Start/stop database
npm run db:up
npm run db:down
# Run migrations
npm run db:migrate
# Create new migration
npm run db:migration "description of changes"# Backend tests
cd apps/backend
pytest
# Frontend tests
cd apps/frontend
npm testapps/
βββ frontend/ # Next.js Application
β βββ src/
β β βββ app/ # App Router pages
β β βββ components/ # React components
β β βββ lib/ # Utilities and API client
β β βββ types/ # TypeScript definitions
β βββ package.json
β
βββ backend/ # FastAPI Application
βββ app/
β βββ api/ # API route handlers
β βββ models/ # SQLAlchemy models
β βββ schemas/ # Pydantic schemas
β βββ services/ # Business logic
β βββ core/ # Configuration and auth
βββ alembic/ # Database migrations
βββ requirements.txt
# Root level commands
npm run dev # Run both frontend and backend
npm run dev:frontend # Run only Next.js
npm run dev:backend # Run only FastAPI
npm run build # Build frontend for production
# Database commands
npm run db:up # Start PostgreSQL
npm run db:down # Stop PostgreSQL
npm run db:migrate # Run pending migrations
npm run db:migration # Create new migration- Set production environment variables
- Run database migrations:
alembic upgrade head - Start with production ASGI server:
gunicorn app.main:app -w 4 -k uvicorn.workers.UvicornWorker
- Build the application:
npm run build - Deploy the
apps/frontend/.nextdirectory to your hosting platform
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Ensure PostgreSQL container is running:
docker-compose ps - Check database logs:
docker-compose logs postgres - Verify connection string in
.envfile
- Frontend (3000): Change in
apps/frontend/package.json - Backend (8000): Change in
.envfile and update frontend API URL - Database (5432): Change in
docker-compose.ymland update connection strings
- Reset database:
docker-compose down -v && docker-compose up -d postgres - Recreate migrations: Delete
alembic/versions/*and runalembic revision --autogenerate -m "initial"