A web-based platform connecting university students with mentors (alumni and professors) for academic guidance and career support.
- π Mentor Discovery - Browse and search mentor profiles
- π Appointment Booking - Schedule meetings with mentors
- π¬ Community Forum - Ask questions and get answers
- π³ Payment Processing - Secure payment handling
- π€ Profile Management - Manage your profile and avatar
Backend:
- Node.js + TypeScript
- Express.js
- Prisma ORM + MySQL
- JWT Authentication
Frontend:
- React + TypeScript
- Vite
- Tailwind CSS
- React Router
- Node.js 18+ and npm
- MySQL 8.0
- Git
git clone https://github.com/SridharVadla45/SMU-Guide.git
cd SMU-Guidenpm installStart MySQL using Docker Compose:
docker-compose up -dThis will start MySQL on port 3307 with:
- Database:
smuguide - User:
test - Password:
test123
Create apps/api-server/.env:
# Database
DATABASE_URL="mysql://test:test123@localhost:3307/smuguide"
# Server
PORT=8080
# JWT Secret (change this in production!)
JWT_SECRET="your-super-secret-jwt-key-change-in-production"Create apps/web-app/.env:
VITE_API_URL=http://localhost:8080/apiNavigate to the API server and run Prisma migrations:
cd apps/api-server
npx prisma db push
npx prisma generatenpx prisma db seedcd apps/api-server
npm run devBackend will run on: http://localhost:8080
cd apps/web-app
npm run devFrontend will run on: http://localhost:5173
Open your browser and navigate to:
- Frontend: http://localhost:5173
- Backend API: http://localhost:8080/api
After seeding, you can login with:
Student:
- Email:
[email protected] - Password:
password123
Mentor:
- Email:
[email protected] - Password:
password123
SMU-Guide/
βββ apps/
β βββ api-server/ # Backend (Node.js + Express)
β β βββ src/
β β βββ prisma/
β β βββ package.json
β βββ web-app/ # Frontend (React + Vite)
β βββ src/
β βββ package.json
βββ docker-compose.yml # MySQL container
βββ package.json # Root workspace
npm run dev # Start development server with hot reload
npm run build # Compile TypeScript to JavaScript
npm start # Run production buildnpm run dev # Start Vite dev server
npm run build # Build for production
npm run preview # Preview production buildIf you can't connect to the database:
-
Check if MySQL is running:
docker-compose ps
-
Restart the container:
docker-compose down docker-compose up -d
-
Verify the
DATABASE_URLinapps/api-server/.envmatches your MySQL configuration
If port 8080 or 5173 is already in use:
-
Change the port in
apps/api-server/.env:PORT=3000
-
Update the frontend
.envto match:VITE_API_URL=http://localhost:3000/api
If you see "Cannot find module '@prisma/client'":
cd apps/api-server
npx prisma generateISC
Sridhar Vadla