ConnectX is a full-stack learning management system (LMS) designed for educational institutions. It integrates modern web technologies and AI services to streamline content delivery, communication, and task management.
- Frontend: React, TypeScript, Vite, Tailwind CSS
- Backend: Node.js, Express, MongoDB
- AI Services: Python, Flask
- Monorepo: Turborepo with pnpm
ConnectX/
βββ apps/
β   βββ client/           # React frontend
β   βββ server/           # Node.js backend
β   βββ pythonserver/     # Python AI services
βββ packages/             # Shared packages
β   βββ eslint-config/    # ESLint configurations
β   βββ typescript-config/ # TypeScript configurations
β   βββ ui/              # Shared UI components
βββ package.json          # Root package.json with turbo scripts
βββ pnpm-workspace.yaml   # pnpm workspace configuration
βββ turbo.json           # Turbo configuration
- Built with Vite for fast development and builds.
- Main source code lives in apps/client/src/.
- Handles routing, authentication UI, tasks, announcements, and chat frontend.
- Express backend with REST APIs.
- Manages users, tasks, announcements, and real-time chat using Socket.IO.
- Main entry point: apps/server/src/index.ts
- Flask server handling AI-powered features (e.g., content generation, smart replies).
- Main entry point: apps/pythonserver/main.py
- Node.js 18+ & pnpm
- Python 3.8+
- MongoDB
# Install dependencies for all packages
pnpm install
# Start all applications in development mode
pnpm run dev# Install all dependencies across the monorepo
pnpm installCreate .env files in each app directory:
apps/client/.env:
VITE_BACKEND_URL=http://localhost:5001
VITE_CLERK_PUBLISHABLE_KEY=your_key
apps/server/.env:
DATABASE_URL=mongodb://localhost:27017/connectx
PORT=5001
JWT_SECRET=your_jwt_secret
apps/pythonserver/.env:
PORT=6001
GROQ_API_KEY=your_api_key
cd apps/pythonserver
pip3 install -r requirements.txt# Start all applications in development mode
pnpm run dev
# Start individual applications
pnpm run dev --filter=client
pnpm run dev --filter=server
pnpm run dev --filter=pythonserver# Build all applications
pnpm run build
# Build individual applications
pnpm run build --filter=client
pnpm run build --filter=server# Lint all applications
pnpm run lint
# Lint individual applications
pnpm run lint --filter=client# Start all applications in production mode
pnpm run startWhen running pnpm run dev, applications will be available at:
- Frontend (React): http://localhost:5173/
- Backend (Node.js): http://localhost:5001/
- AI Server (Python): http://localhost:6001/
- Real-time using Socket.IO
- Smart AI responses via Python server
- Relevant files:
- Frontend: apps/client/src/pages/Chat/Chat.tsx
- Backend routes: apps/server/src/Routes/ChatRoutes.ts
 
- Frontend: 
- Managed in Node server
- Supports file/image uploads
- Related files:
- Frontend: apps/client/src/pages/Create-Tasks/CreateTasks.tsx,apps/client/src/pages/Create-Announcements/CreateAnnouncements.tsx
- Backend: apps/server/src/controllers/DataController.ts
 
- Frontend: 
- Tailwind CSS
- Configuration in apps/client/tailwind.config.js
- Ensure .envfiles are correctly placed in each app directory (apps/client/,apps/server/,apps/pythonserver/).
- If you face errors:
rm -rf node_modules apps/*/node_modules pnpm install
- Make sure to use python3instead ofpython
- Install Python dependencies: pip3 install -r apps/pythonserver/requirements.txt
- Ensure frontend .envmatches backend URLs (Node and Python servers).
- If you encounter caching problems:
pnpm run build --force # or rm -rf .turbo
This project has been migrated from npm to pnpm with Turborepo. Key changes:
- Package Manager: Now uses pnpm instead of npm
- Monorepo Structure: Organized with Turborepo for better caching and parallel execution
- Build System: Turbo handles build orchestration and caching
- Workspace: Configured with pnpm-workspace.yaml
Happy building with ConnectX! π