Skip to content

Latest commit

Β 

History

History
142 lines (103 loc) Β· 2.7 KB

File metadata and controls

142 lines (103 loc) Β· 2.7 KB

LangSuit 🌍

An easy way to become a Polyglot - A modern language learning platform built with Next.js.

Features

  • 🎯 Interactive language learning exercises
  • πŸ“Š Real-time progress tracking
  • πŸ† Leaderboard and achievements system
  • πŸŽ“ Multiple language courses
  • πŸ’» Instructor dashboard
  • πŸ“± Mobile-responsive design
  • πŸ”„ Real-time analytics

Tech Stack

  • Next.js 14 with App Router
  • TypeScript
  • Drizzle ORM with PostgreSQL
  • Redis Caching
  • TailwindCSS
  • Clerk Authentication
  • React Admin Dashboard
  • Recharts for Analytics
  • Jest for Testing

Prerequisites

  • Node.js 18+
  • PostgreSQL
  • Redis (optional, for caching)

Getting Started

  1. Clone the repository:
git clone https://github.com/codegasms/langsuit.git
cd langsuit
  1. Install dependencies:
npm install
  1. Set up environment variables:
cp .env.example .env
  1. Update the .env file with your credentials:
DATABASE_URL=your_postgres_url
REDIS_URL=your_redis_url
CLERK_SECRET_KEY=your_clerk_key
.
.
.
  1. Run database migrations:
npm run db:push
  1. Seed the database:
npm run db:seed
  1. Start the development server:
npm run dev

Open http://localhost:3000 to see the application.

Available Scripts

  • npm run dev - Start development server
  • npm run build - Build for production
  • npm run start - Start production server
  • npm run lint - Run ESLint
  • npm run format - Format code with Prettier
  • npm run test - Run tests
  • npm run test:coverage - Run tests with coverage
  • npm run db:studio - Open Drizzle Studio
  • npm run db:push - Push database changes
  • npm run db:seed - Seed the database

Testing

The project uses Jest for testing. Run the test suite with:

npm run test

For coverage report:

npm run test:coverage

Check package.json for more scripts.

Project Structure

langsuit/
β”œβ”€β”€ app/                    # Next.js app directory
β”‚   β”œβ”€β”€ (dashboard)/       # Dashboard routes
β”‚   β”œβ”€β”€ (home)/           # Public routes
β”‚   └── api/              # API routes
β”œβ”€β”€ components/            # Reusable components
β”œβ”€β”€ db/                    # Database configuration
β”œβ”€β”€ lib/                   # Utility functions
β”œβ”€β”€ public/               # Static assets
└── tests/                # Test files

Contributing

  1. Fork the repository
  2. Create a new branch
  3. Make your changes
  4. Submit a pull request

License

This project is licensed under the MIT License.

Support

For support, email bishwajeet.s22@iiits.in, parth.v22@iiits.in or akshat.m22@iiits.in. Otherwise open an issue in the repository.