ECL Global is a comprehensive educational consultancy platform designed to help students achieve their academic goals through expert guidance, courses, and study abroad services.
- Course Management: Browse and enroll in various educational courses
- Study Abroad Services: Comprehensive guidance for international education
- Mock Tests: Practice tests for exam preparation
- Events: Educational events and webinars
- Branch Locations: Multiple office locations
- Payment Integration: Stripe payment processing
- User Authentication: Secure login and registration
- Frontend: React 18, Tailwind CSS, Wouter (routing)
- Backend: Node.js, Express 5
- Database: PostgreSQL with Prisma ORM
- Authentication: JWT & bcrypt
- Payment: Stripe
- Deployment: Render
- Node.js 18+
- PostgreSQL database
- npm or yarn
-
Clone the repository
git clone <your-repo-url> cd ECL Global
-
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env
Edit
.envwith your configuration:DATABASE_URL: Your PostgreSQL connection stringSESSION_SECRET: Random 32+ character stringJWT_SECRET: Random string for JWT signingSTRIPE_SECRET_KEY: Your Stripe secret key (optional)STRIPE_PUBLISHABLE_KEY: Your Stripe publishable key (optional)
-
Run database migrations
npm run db:migrate npx prisma generate
-
Start development server
npm run dev
-
Access the application
├── client/ # React frontend
│ ├── src/
│ │ ├── components/ # Reusable components
│ │ ├── pages/ # Page components
│ │ ├── lib/ # Utilities and auth
│ │ └── styles/ # CSS files
├── server/ # Express backend
│ ├── index.ts # Server entry point
│ ├── routes.ts # API routes
│ └── storage.ts # Database operations
├── prisma/ # Database schema and migrations
│ ├── schema.prisma # Database schema
│ └── migrations/ # Migration files
├── shared/ # Shared TypeScript types
└── build.sh # Render build script
npm run dev- Start development servernpm run build- Build for productionnpm start- Start production servernpm run db:migrate- Run database migrationsnpm run db:push- Push schema to databasenpm run db:studio- Open Prisma Studionpm run db:generate- Generate Prisma Client
| Variable | Description | Required |
|---|---|---|
DATABASE_URL |
PostgreSQL connection string | Yes |
SESSION_SECRET |
Secret for session encryption | Yes |
JWT_SECRET |
Secret for JWT signing | Yes |
NODE_ENV |
Environment (development/production) | Yes |
PORT |
Server port (default: 5000) | No |
STRIPE_SECRET_KEY |
Stripe secret key | No |
STRIPE_PUBLISHABLE_KEY |
Stripe publishable key | No |
The application uses PostgreSQL with the following main models:
- Users (students, instructors, admins)
- Courses & Lectures
- Categories
- Enrollments
- Mock Tests & Attempts
- Events & Registrations
- Study Abroad Services & Inquiries
- Branches
POST /api/auth/register- Register new userPOST /api/auth/login- Login userPOST /api/auth/logout- Logout userGET /api/auth/me- Get current user
GET /api/courses- List all coursesGET /api/courses/:id- Get course detailsPOST /api/courses- Create course (admin)
GET /api/enrollments- Get user enrollmentsPOST /api/enrollments- Enroll in course
GET /api/events- List all eventsGET /api/events/:id- Get event detailsPOST /api/event-registrations- Register for event
GET /api/health- Health check endpoint
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License.
For support, email support@eclglobal.com or visit our website.
- React team for the amazing framework
- Prisma for the excellent ORM
- Tailwind CSS for the utility-first CSS framework
- Render for hosting platform