Skip to content

misbah7172/ECL-Global

Repository files navigation

ECL Global - Educational Consultancy Platform

ECL Global is a comprehensive educational consultancy platform designed to help students achieve their academic goals through expert guidance, courses, and study abroad services.

Features

  • 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

Tech Stack

  • Frontend: React 18, Tailwind CSS, Wouter (routing)
  • Backend: Node.js, Express 5
  • Database: PostgreSQL with Prisma ORM
  • Authentication: JWT & bcrypt
  • Payment: Stripe
  • Deployment: Render

Getting Started

Prerequisites

  • Node.js 18+
  • PostgreSQL database
  • npm or yarn

Local Development

  1. Clone the repository

    git clone <your-repo-url>
    cd ECL Global
  2. Install dependencies

    npm install
  3. Set up environment variables

    cp .env.example .env

    Edit .env with your configuration:

    • DATABASE_URL: Your PostgreSQL connection string
    • SESSION_SECRET: Random 32+ character string
    • JWT_SECRET: Random string for JWT signing
    • STRIPE_SECRET_KEY: Your Stripe secret key (optional)
    • STRIPE_PUBLISHABLE_KEY: Your Stripe publishable key (optional)
  4. Run database migrations

    npm run db:migrate
    npx prisma generate
  5. Start development server

    npm run dev
  6. Access the application

Project Structure

├── 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

Available Scripts

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm start - Start production server
  • npm run db:migrate - Run database migrations
  • npm run db:push - Push schema to database
  • npm run db:studio - Open Prisma Studio
  • npm run db:generate - Generate Prisma Client

Environment Variables

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

Database Schema

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

API Endpoints

Authentication

  • POST /api/auth/register - Register new user
  • POST /api/auth/login - Login user
  • POST /api/auth/logout - Logout user
  • GET /api/auth/me - Get current user

Courses

  • GET /api/courses - List all courses
  • GET /api/courses/:id - Get course details
  • POST /api/courses - Create course (admin)

Enrollments

  • GET /api/enrollments - Get user enrollments
  • POST /api/enrollments - Enroll in course

Events

  • GET /api/events - List all events
  • GET /api/events/:id - Get event details
  • POST /api/event-registrations - Register for event

Health Check

  • GET /api/health - Health check endpoint

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

This project is licensed under the MIT License.

Support

For support, email support@eclglobal.com or visit our website.

Acknowledgments

  • React team for the amazing framework
  • Prisma for the excellent ORM
  • Tailwind CSS for the utility-first CSS framework
  • Render for hosting platform

About

ECL Global is a comprehensive educational consultancy platform designed to help students achieve their academic goals through expert guidance, courses, and study abroad services

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages