An easy way to become a Polyglot - A modern language learning platform built with Next.js.
- π― Interactive language learning exercises
- π Real-time progress tracking
- π Leaderboard and achievements system
- π Multiple language courses
- π» Instructor dashboard
- π± Mobile-responsive design
- π Real-time analytics
- 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
- Node.js 18+
- PostgreSQL
- Redis (optional, for caching)
- Clone the repository:
git clone https://github.com/codegasms/langsuit.git
cd langsuit- Install dependencies:
npm install- Set up environment variables:
cp .env.example .env- Update the .env file with your credentials:
DATABASE_URL=your_postgres_url
REDIS_URL=your_redis_url
CLERK_SECRET_KEY=your_clerk_key
.
.
.- Run database migrations:
npm run db:push- Seed the database:
npm run db:seed- Start the development server:
npm run devOpen http://localhost:3000 to see the application.
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLintnpm run format- Format code with Prettiernpm run test- Run testsnpm run test:coverage- Run tests with coveragenpm run db:studio- Open Drizzle Studionpm run db:push- Push database changesnpm run db:seed- Seed the database
The project uses Jest for testing. Run the test suite with:
npm run testFor coverage report:
npm run test:coverageCheck package.json for more scripts.
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
- Fork the repository
- Create a new branch
- Make your changes
- Submit a pull request
This project is licensed under the MIT License.
For support, email bishwajeet.s22@iiits.in, parth.v22@iiits.in or akshat.m22@iiits.in. Otherwise open an issue in the repository.