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 dev
Open 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 test
For coverage report:
npm run test:coverage
Check 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.