Skip to content

BernieTv/Duo-Clone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌟 Duolingo Clone Built with Next.js, React, Drizzle, and Stripe πŸš€

A fun, gamified language-learning platform inspired by Duolingo, built with modern technologies to provide an immersive experience. This project leverages AI voices, gamification features, and a robust backend system to help users learn new languages while having fun. πŸŽ‰πŸ“š


πŸ“‹ Table of Contents πŸ”—

  1. Project Description πŸ“
  2. Tech Stack πŸ’»
  3. Key Features ✨
  4. Prerequisites βš™οΈ
  5. Cloning the Repository πŸ”₯
  6. Install Packages πŸ“¦
  7. Setup .env File πŸ”‘
  8. Setup Drizzle ORM πŸ—„οΈ
  9. Seed the App 🌱
  10. Start the App πŸš€

πŸ“ Project Description πŸ“š

This project is a Duolingo clone built using Next.js, React, Drizzle, and Stripe, offering a fully functional language-learning experience. It includes various gamification elements like hearts ❀️, points 🌟, and leaderboards πŸ†, plus additional features such as AI-generated voices πŸ—£οΈ and a premium tier πŸ’³ with Stripe for unlimited hearts πŸ’–.


πŸ’» Tech Stack πŸ› οΈ

  • Next.js 14 🌐 - Framework for building fast, server-rendered React applications πŸš€
  • React βš›οΈ - Library for building user interfaces πŸ’»
  • DrizzleORM 🌧️ - Lightweight ORM for database interaction πŸ’Ύ
  • PostgresDB (NeonDB) πŸ—„οΈ - Database used for storing user data and progress πŸ”’
  • Stripe πŸ’³ - Payment processing for Pro Tier subscription πŸ’°
  • Clerk πŸ” - Authentication and user management πŸ‘€
  • ElevenLabs AI 🧠 - AI voices for dynamic and personalized language lessons πŸŽ™οΈ
  • Shadcn UI 🎨 - Component system for a modern, responsive design 🌟
  • React Admin πŸ› οΈ - Admin dashboard for managing the app βš™οΈ
  • Vercel 🌐 - Platform for fast and reliable deployment 🌎
  • Tailwind CSS πŸͺΆ - Utility-first CSS framework for rapid UI development 🎨

✨ Key Features πŸ”‘

  • 🌐 Next.js 14 & server actions for optimal performance πŸš€
  • πŸ—£οΈ AI Voices powered by ElevenLabs AI for dynamic language learning 🧠
  • 🎨 Beautiful Component System using Shadcn UI for seamless UI/UX ✨
  • 🎭 Amazing Characters designed by KenneyNL for an engaging experience πŸ‘Ύ
  • πŸ” Authentication via Clerk for secure sign-in and user management πŸ”‘
  • πŸ”Š Sound Effects to enhance the learning atmosphere 🎧
  • ❀️ Hearts System for in-game challenges and progression πŸ’–
  • 🌟 Points / XP System to track and motivate user progress πŸ“ˆ
  • πŸ’” No Hearts Left Popup when hearts run out, creating urgency ⏳
  • πŸšͺ Exit Confirmation Popup to prevent accidental exits ⚠️
  • πŸ”„ Practice Old Lessons to regain hearts and keep progressing πŸ’ͺ
  • πŸ† Leaderboard to encourage friendly competition πŸ₯‡
  • πŸ—ΊοΈ Quests Milestones for a gamified learning experience πŸ›€οΈ
  • πŸ›οΈ Shop System to exchange points for hearts πŸ’°
  • πŸ’³ Pro Tier unlocking unlimited hearts with Stripe for premium access πŸ’Ž
  • 🏠 Landing Page for easy navigation and access 🧭
  • πŸ“Š Admin Dashboard powered by React Admin for smooth management πŸ§‘β€πŸ’Ό
  • 🌧️ ORM Integration using DrizzleORM for database handling πŸ”„
  • πŸ’Ύ PostgresDB via NeonDB for robust data storage πŸ—ƒοΈ
  • πŸš€ Deployment on Vercel for fast and reliable hosting 🌎
  • πŸ“± Mobile Responsiveness ensuring accessibility on all devices πŸ“²

βš™οΈ Prerequisites πŸ› οΈ

Ensure you have Node version 14.x installed on your system. πŸ’»πŸ”§


πŸ”₯ Cloning the Repository πŸ’Ύ

To clone the repository, run the following command:

git clone https://github.com/BernieTv/Duo-clone.git

πŸ“¦ Install Packages 🧩

Install the required packages using npm:

npm i

πŸ”‘ Setup .env File πŸ”’

Create your .env file and configure the following environment variables:

NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=""
CLERK_SECRET_KEY=""
DATABASE_URL="postgresql://..."
STRIPE_API_KEY=""
NEXT_PUBLIC_APP_URL="http://localhost:3000"
STRIPE_WEBHOOK_SECRET=""

πŸ—„οΈ Setup Drizzle ORM 🌧️

To set up the database schema, run:

npm run db:push

🌱 Seed the App 🌾

To seed the application with data, run:

npm run db:seed

Or for production setup:

npm run db:prod

πŸš€ Start the App πŸŽ‰

To run the app in development mode, execute:

npm run dev

About

Duolingo Clone build with NextJS and Drizzle πŸ¦‰πŸŸ’πŸ“šπŸŒπŸ§ 

Topics

Resources

License

Stars

Watchers

Forks

Contributors