An open API service indexing awesome lists of open source software.

https://github.com/harsh-kumar-jha/ed-tech

An intelligent, scalable, and modular Node.js + TypeScript platform for IELTS test prep. Features include AI-evaluated tests, student progress tracking, real-time interactions, and comprehensive support for all four IELTS sections.
https://github.com/harsh-kumar-jha/ed-tech

ai-integration authentication edtech expressjs groq-ai ielts joi multer nodejs oauth2 postgressql prisma real-time socket-io typescript winston

Last synced: 3 months ago
JSON representation

An intelligent, scalable, and modular Node.js + TypeScript platform for IELTS test prep. Features include AI-evaluated tests, student progress tracking, real-time interactions, and comprehensive support for all four IELTS sections.

Awesome Lists containing this project

README

          

# IELTS EdTech Platform


TypeScript
Node.js
Express.js
PostgreSQL
Prisma
Socket.io




License: MIT
PRs Welcome
Version


๐ŸŽฏ Comprehensive IELTS Test Preparation Platform


An AI-powered EdTech platform built with Node.js, Express.js, and TypeScript to help students prepare for IELTS exams and achieve their study abroad goals.


---

## ๐ŸŒŸ Overview

The IELTS EdTech Platform is a comprehensive, open-source solution designed to revolutionize IELTS test preparation. Built with modern technologies and powered by AI, it provides students with personalized learning experiences, real-time feedback, and progress tracking to maximize their success in IELTS examinations.

### Why This Project?

- **๐ŸŽ“ Educational Impact**: Helps students worldwide achieve their study abroad dreams
- **๐Ÿค– AI-Powered**: Leverages Groq AI for intelligent test evaluation and feedback
- **๐Ÿ—๏ธ Modern Architecture**: Built with TypeScript, Express.js, and PostgreSQL for scalability
- **๐Ÿ”„ Real-time Features**: Socket.IO integration for live communication and updates
- **๐Ÿ“Š Progress Tracking**: Comprehensive analytics and leaderboard system

## โœจ Key Features

### ๐Ÿ“š Core IELTS Modules
- **๐Ÿ“– Reading Tests**: Advanced reading comprehension with diverse question types
- **๐ŸŽง Listening Tests**: Audio-based assessments with real-time scoring
- **โœ๏ธ Writing Tests**: Essay evaluation with AI-powered feedback and scoring
- **๐Ÿ—ฃ๏ธ Speaking Tests**: Audio response recording with pronunciation analysis

### ๐Ÿš€ Platform Capabilities
- **๐Ÿ‘ค Student Portfolio System**: Comprehensive progress tracking and achievement management
- **๐Ÿ† Leaderboard & Gamification**: Motivational ranking system with badges and rewards
- **๐Ÿค– AI Integration**: Groq AI-powered evaluation with detailed feedback
- **๐Ÿ“‹ Test Summarizer**: Automated performance summaries and improvement suggestions
- **โšก Real-time Communication**: Live features powered by Socket.IO
- **๐Ÿ“ File Management**: Support for audio, video, and document uploads
- **๐Ÿ” Secure Authentication**: JWT-based auth with OAuth2 support (Google, Microsoft)

## ๐Ÿ—๏ธ Technical Architecture

### Technology Stack

| Category | Technology |
|----------|------------|
| **Backend** | Node.js, Express.js, TypeScript |
| **Database** | PostgreSQL with Prisma ORM |
| **AI/ML** | Groq AI for intelligent evaluation |
| **Real-time** | Socket.IO for live features |
| **Authentication** | JWT with OAuth2 (Google, Microsoft) |
| **File Storage** | Multer for local storage |
| **Logging** | Winston with daily rotation |
| **Validation** | Joi for request validation |
| **Security** | bcrypt, rate limiting, CORS |

### ๐Ÿ“ Project Structure

```
EdTech/
โ”œโ”€โ”€ ๐Ÿ“ src/
โ”‚ โ”œโ”€โ”€ ๐Ÿ“ config/ # Application configuration
โ”‚ โ”œโ”€โ”€ ๐Ÿ“ constants/ # Application constants
โ”‚ โ”œโ”€โ”€ ๐Ÿ“ db/ # Database utilities
โ”‚ โ”œโ”€โ”€ ๐Ÿ“ models/ # Database models (TypeScript interfaces)
โ”‚ โ”œโ”€โ”€ ๐Ÿ“ services/ # Modular business logic services
โ”‚ โ”‚ โ”œโ”€โ”€ ๐Ÿ“ Auth/ # Authentication service
โ”‚ โ”‚ โ”œโ”€โ”€ ๐Ÿ“ AI/ # AI integration service
โ”‚ โ”‚ โ”œโ”€โ”€ ๐Ÿ“ Ielts/ # IELTS test service
โ”‚ โ”‚ โ”œโ”€โ”€ ๐Ÿ“ Leaderboard/ # Leaderboard service
โ”‚ โ”‚ โ””โ”€โ”€ ๐Ÿ“ Profile/ # User profile service
โ”‚ โ”œโ”€โ”€ ๐Ÿ“ tests/ # Test utilities and integration tests
โ”‚ โ”œโ”€โ”€ ๐Ÿ“ types/ # TypeScript type definitions
โ”‚ โ”œโ”€โ”€ ๐Ÿ“ utils/ # Utility functions
โ”‚ โ””โ”€โ”€ ๐Ÿ“„ server.ts # Server setup
โ”œโ”€โ”€ ๐Ÿ“ prisma/ # Modular database schema
โ”‚ โ”œโ”€โ”€ ๐Ÿ“ models/ # Individual model files
โ”‚ โ”œโ”€โ”€ ๐Ÿ“ enums/ # Enum definitions
โ”‚ โ”œโ”€โ”€ ๐Ÿ“ scripts/ # Schema build scripts
โ”‚ โ””โ”€โ”€ ๐Ÿ“„ schema.prisma # Generated main schema
โ”œโ”€โ”€ ๐Ÿ“ logs/ # Application logs
โ”œโ”€โ”€ ๐Ÿ“ public/ # Static files
โ”œโ”€โ”€ ๐Ÿ“„ package.json # Dependencies and scripts
โ”œโ”€โ”€ ๐Ÿ“„ tsconfig.json # TypeScript configuration
โ””โ”€โ”€ ๐Ÿ“„ index.ts # Application entry point
```

## ๐Ÿš€ Quick Start

### Prerequisites

Make sure you have the following installed:

- **Node.js** (v18.0.0 or higher) - [Download here](https://nodejs.org/)
- **pnpm** (v8.0.0 or higher) - [Install guide](https://pnpm.io/installation)
- **PostgreSQL** (v13 or higher) - [Download here](https://www.postgresql.org/download/)
- **Groq AI API Key** - [Get your key](https://console.groq.com/)

### Installation

1. **Clone the repository**
```bash
git clone https://github.com/yourusername/ielts-edtech-platform.git
cd ielts-edtech-platform
```

2. **Install dependencies**
```bash
pnpm install
```

3. **Environment configuration**
```bash
cp .env.sample .env
```

4. **Configure environment variables**
```env
# Server Configuration
NODE_ENV=development
PORT=3000
API_VERSION=v1

# Database Configuration
DATABASE_URL="postgresql://username:password@localhost:5432/ielts_edtech_db"

# JWT Configuration
JWT_SECRET=your-super-secure-jwt-secret-key-here
JWT_EXPIRES_IN=7d

# AI Configuration (Groq)
GROQ_API_KEY=your-groq-api-key-here
GROQ_MODEL=mixtral-8x7b-32768

# OAuth Configuration
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
```

5. **Database setup**
```bash
# Create database
createdb ielts_edtech_db

# Build schema and generate client
pnpm run db:build-schema
pnpm run db:generate
pnpm run db:migrate

# (Optional) Seed with test data
pnpm run db:seed
```

6. **Start the application**
```bash
# Development mode
pnpm run dev

# Production mode
pnpm run build && pnpm start
```

Visit `http://localhost:3000` to access the application!

## ๐Ÿ“š Documentation

| Documentation | Description |
|---------------|-------------|
| [API Documentation](./api-docs/) | Complete API reference and examples |
| [Authentication Guide](./api-docs/auth.api.docs.md) | Authentication and authorization |
| [Writing Evaluation API](./api-docs/writing-evaluation.api.docs.md) | AI-powered writing assessment |
| [Contributing Guide](./CONTRIBUTING.md) | How to contribute to the project |
| [Code of Conduct](./CODE_OF_CONDUCT.md) | Community guidelines |

## ๐Ÿค Contributing

We welcome contributions from the community! Here's how you can help:

### Ways to Contribute

- ๐Ÿ› **Bug Reports**: Found an issue? [Create a bug report](https://github.com/yourusername/ielts-edtech-platform/issues/new?template=bug_report.md)
- ๐Ÿ’ก **Feature Requests**: Have an idea? [Suggest a feature](https://github.com/yourusername/ielts-edtech-platform/issues/new?template=feature_request.md)
- ๐Ÿ“ **Documentation**: Improve our docs or write tutorials
- ๐Ÿ”ง **Code Contributions**: Fix bugs or implement new features
- ๐Ÿงช **Testing**: Help us improve test coverage
- ๐ŸŒ **Translation**: Help us support more languages

### Development Workflow

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

### Development Guidelines

- Follow the existing code style and conventions
- Write tests for new features
- Update documentation for any API changes
- Ensure all tests pass before submitting
- Use descriptive commit messages

## ๐Ÿ”’ Security

Security is a top priority. This platform includes:

- **JWT-based authentication** with refresh tokens
- **OAuth 2.0 integration** (Google, Microsoft)
- **Rate limiting** to prevent abuse
- **Input validation** using Joi
- **CORS protection** and security headers
- **Password hashing** with bcrypt
- **Two-factor authentication** (SMS)
- **Audit logging** for sensitive operations

## ๐Ÿ“Š Monitoring & Analytics

- **Winston logging** with daily rotation
- **Request/Response logging** for debugging
- **Error tracking** and performance monitoring
- **User analytics** and learning insights
- **Test performance metrics**

## ๐Ÿ“ˆ Performance

- **Scalable architecture** with modular services
- **Database optimization** with Prisma ORM
- **Real-time features** with Socket.IO
- **File upload optimization** with Multer
- **Caching strategies** for improved performance

## ๐ŸŒ Community

- **Discord**: [Join our community](#)
- **GitHub Discussions**: [Ask questions and share ideas](#)
- **Twitter**: [@harshxdev](https://x.com/harshxdev)

## ๐Ÿ“„ License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## ๐Ÿ™ Acknowledgments

- Thanks to all contributors who have helped shape this project
- Groq AI for providing powerful AI capabilities
- The open-source community for inspiration and support
- IELTS test-takers worldwide who inspired this project

---


โญ If you find this project helpful, please give it a star! โญ


Made with โค๏ธ by the IELTS EdTech Platform team