Skip to content

ShivaKumarChakali/NinerConnect

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NinerConnect

A production-ready monorepo with React frontend, Node.js backend, and Python ML service.

Architecture

  • client: React + Vite + TypeScript + Tailwind CSS + React Router + Zustand + Socket.io + Axios
  • server: Node.js + Express + TypeScript + Mongoose + Socket.io + Zod + Winston
  • ml-service: Python FastAPI + sentence-transformers + scikit-learn + uvicorn + pydantic

Prerequisites

  • Node.js 18+ and pnpm
  • Python 3.9+
  • Docker and Docker Compose

Quick Start

  1. Clone and install dependencies:

    git clone <repository-url>
    cd ninerconnect
    pnpm install
  2. Set up environment variables:

    cp client/.env.example client/.env
    cp server/.env.example server/.env
    cp ml-service/.env.example ml-service/.env
  3. Start development environment:

    pnpm dev
  4. Or start with Docker:

    docker-compose up -d

Development

Available Scripts

  • pnpm dev - Start all services in development mode
  • pnpm build - Build all packages
  • pnpm test - Run tests for all packages
  • pnpm lint - Lint all packages
  • pnpm typecheck - Type check all packages

Individual Service Scripts

Client:

  • pnpm --filter client dev - Start React dev server
  • pnpm --filter client build - Build for production
  • pnpm --filter client preview - Preview production build

Server:

  • pnpm --filter server dev - Start Express server in dev mode
  • pnpm --filter server build - Build TypeScript
  • pnpm --filter server start - Start production server

ML Service:

  • pnpm --filter ml-service dev - Start FastAPI in dev mode
  • pnpm --filter ml-service start - Start production FastAPI

Environment Variables

Client (.env)

VITE_API_URL=http://localhost:3001
VITE_SOCKET_URL=http://localhost:3001

Server (.env)

PORT=3001
NODE_ENV=development
MONGODB_URI=mongodb://localhost:27017/ninerconnect
JWT_SECRET=your-jwt-secret-here
CORS_ORIGIN=http://localhost:5173

ML Service (.env)

ML_SERVICE_PORT=8000
MODEL_PATH=./models
LOG_LEVEL=info

API Endpoints

Server (Express)

  • GET /api/health - Health check
  • POST /api/auth/login - User authentication
  • GET /api/users - Get users

ML Service (FastAPI)

  • GET /health - Health check
  • POST /embed - Text embedding
  • POST /predict - ML prediction

Socket.io Events

  • connection - Client connection
  • message - Chat messages
  • notification - Real-time notifications

Docker

The project includes Docker Compose configuration for local development:

# Start all services
docker-compose up -d

# View logs
docker-compose logs -f

# Stop services
docker-compose down

CI/CD

GitHub Actions workflows are configured for:

  • Type checking
  • Linting
  • Testing
  • Build verification

Project Structure

ninerconnect/
├── client/                 # React frontend
│   ├── src/
│   │   ├── components/     # Reusable components
│   │   ├── pages/         # Route components
│   │   ├── store/         # Zustand stores
│   │   ├── utils/         # Utility functions
│   │   └── types/         # TypeScript types
│   └── package.json
├── server/                # Node.js backend
│   ├── src/
│   │   ├── controllers/   # Route controllers
│   │   ├── models/        # Mongoose models
│   │   ├── routes/        # Express routes
│   │   ├── services/      # Business logic
│   │   ├── middleware/    # Custom middleware
│   │   └── utils/         # Utility functions
│   └── package.json
├── ml-service/            # Python ML service
│   ├── app/
│   │   ├── api/          # FastAPI routes
│   │   ├── models/       # ML models
│   │   ├── services/     # ML services
│   │   └── utils/        # Utility functions
│   └── requirements.txt
├── docker-compose.yml     # Docker services
├── package.json          # Root package.json
└── README.md

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Run tests and linting
  5. Submit a pull request

License

MIT License - see LICENSE file for details.

About

NinerConnect is an AI-powered platform that connects student startup founders with peers who have the right technical, design, and business skills — within the same university ecosystem.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages