A full-stack, gamified vocabulary learning platform built with NestJS and React.
KelimoApp is designed to make language learning addictive and effective. It uses an Instagram Reels-style vertical scroll for learning new words, spaced repetition logic, and interactive mini-games to reinforce memory.
- Vertical Scroll to Learn: Reels-style vertical scrolling system. Scroll down to see new words.
- Spaced Repetition: The app tracks your progress and resurfaces words you struggle with.
- Real-time Stats: Track your daily streak, total learned words, and accuracy rates.
- Word Scramble: Unjumble letters to form the correct word.
- Fill in the Blank: Context-based sentence completion.
- Memory Match: Classic card flipping game to match words with meanings.
- Dictation (Listen & Type): Test your listening and spelling skills with native audio.
- Modern UI/UX: Fully responsive design with Dark Mode support.
- Profile Customization: Upload and crop your profile avatar.
- Google Auth: Seamless and secure login.
Backend
NestJS - Progressive Node.js framework.
Prisma - Next-generation ORM.
PostgreSQL - Relational database.
- Cloudinary - Image optimization and storage.
Frontend
React (Vite) - Fast and modular UI.
TypeScript - Type safety.
Tailwind CSS - Utility-first styling.
- Framer Motion - Smooth animations and gestures.
Follow these steps to run the project locally.
- Node.js (v18+)
- PostgreSQL
- Cloudinary Account
git clone [https://github.com/Skavces/kelime-uygulamasi.git](https://github.com/Skavces/kelime-uygulamasi.git)
cd kelime-uygulamasicd backend
npm install
# Create .env file and fill in your DB and Cloudinary credentials
cp .env.example .env
# Run migrations
npx prisma migrate dev
# Start server
npm run start:devcd frontend
npm install
# Create .env file
echo "VITE_API_URL=http://localhost:3000" > .env
# Start client
npm run devYou need to configure these variables in backend/.env:
DATABASE_URL="postgresql://user:password@localhost:5432/kelimoapp"
JWT_SECRET="your_super_secret_key"
CLOUDINARY_CLOUD_NAME="xxx"
CLOUDINARY_API_KEY="xxx"
CLOUDINARY_API_SECRET="xxx"
GOOGLE_CLIENT_ID="xxx"Contributions are welcome! Feel free to open an issue or submit a Pull Request.
This project is open source and available under the MIT License.


