Skip to content

Atik203/VocabPrep

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

32 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

VocabPrep โ€“ Master English Vocabulary

A modern, focused web application to help you build and master English vocabulary through interactive learning, practice sessions, and progress tracking.

โœจ Key Features

  • ๐Ÿ“š Vocabulary Management - Add, edit, and organize words with meanings, synonyms, antonyms
  • ๐Ÿ‡ง๐Ÿ‡ฉ Bengali Support - Includes Bengali meanings for better understanding
  • ๐ŸŽฏ Smart Practice Modes - Flashcards, quizzes, and sentence practice
  • ๐Ÿ“Š Progress Tracking - Track your learning journey with stats and achievements
  • ๐Ÿ”Š Audio Pronunciation - Learn correct pronunciation with audio support
  • ๐ŸŽจ Modern UI - Beautiful glass-morphism design with dark mode support
  • ๐Ÿ” Google OAuth - Secure authentication with Google Sign-In
  • ๐ŸŒ Public Vocabulary - Browse words without login, full features when authenticated

๐ŸŽฏ Project Goals

  • Build a comprehensive vocabulary learning platform focused on mastering English words
  • Provide interactive and engaging practice methods (flashcards, quizzes, sentences)
  • Track progress and celebrate learning milestones
  • Make vocabulary learning accessible and fun
  • Support learners at all levels with difficulty-based categorization

๐Ÿ› ๏ธ Tech Stack

Frontend

  • Next.js 16.0.3 with App Router
  • React 19 + TypeScript
  • Redux Toolkit with RTK Query for state management
  • Tailwind CSS v4 for styling
  • shadcn/ui + Radix UI components
  • Framer Motion for animations
  • Google OAuth for authentication

Backend

  • Node.js + Express.js + TypeScript
  • MongoDB + Mongoose 8.20.0
  • Passport.js for Google OAuth
  • Zod for validation
  • RESTful APIs for:
    • Vocabulary CRUD operations
    • User authentication
    • Progress tracking
    • Practice sessions

Deployment

  • Backend: Vercel-ready deployment
  • Database: MongoDB Atlas
  • Authentication: Cookie-based sessions with Google OAuth

๐Ÿ—๏ธ Architecture

Backend API Structure

  • Express Server
    • Handles all CRUD operations for vocabulary
    • User authentication with Google OAuth
    • Progress tracking and statistics
    • Cookie-based session management

Frontend Architecture

  • Next.js App Router for routing and server components
  • Redux Toolkit for global state management
  • RTK Query for API calls and caching
  • Client-side rendering for interactive components
  • Server-side authentication via middleware

๐Ÿ“‹ Core Features

1. Vocabulary Management ๐Ÿ“š

Add new words with comprehensive details:

  • word - The English word
  • meaning - Definition in English
  • meaningBn - Bengali translation
  • partOfSpeech - Noun, verb, adjective, etc.
  • phonetic - Phonetic notation
  • phoneticAudio - Audio pronunciation URL
  • exampleSentence - Usage example
  • synonyms - Related words with similar meaning
  • antonyms - Words with opposite meaning
  • difficulty - easy | medium | hard
  • status - new | learning | learned
  • notes - Personal learning notes

Smart Filtering:

  • Filter by difficulty level (easy, medium, hard)
  • Filter by learning status (new, learning, learned)
  • Search by word or meaning
  • Sort and organize your vocabulary

Word Management:

  • Edit or delete existing words
  • Mark words as learning or learned
  • Track progress for each word
  • View detailed word information with pronunciation

2. Interactive Practice Modes ๐ŸŽฏ

Flashcard Mode:

  • Show word with definition
  • Click to reveal or hide details
  • Navigate through vocabulary deck
  • Audio pronunciation playback

Quiz Mode:

  • Type the correct word for a given meaning
  • Instant feedback on correctness
  • Score tracking during session
  • Review incorrect answers

Sentence Practice:

  • Write original sentences using new words
  • Practice contextual usage
  • Build writing skills
  • Understand word application in context

3. Progress Tracking ๐Ÿ“Š

Statistics Dashboard:

  • Total words in your vocabulary
  • Number of learned words
  • Learning progress percentage
  • Words added per day average
  • Days active on platform

Achievements System:

  • ๐ŸŽ–๏ธ First Word - Added your first vocabulary word
  • โšก Quick Learner - Added 10 words in one day
  • ๐Ÿ† Vocabulary Master - Reached 100 words
  • ๐Ÿ”ฅ Consistent Learner - 7-day learning streak

Learned Words Gallery:

  • Visual display of mastered vocabulary
  • Difficulty-based color coding
  • Quick access to word details
  • Track your learning journey

4. User Authentication ๐Ÿ”

Google OAuth Integration:

  • Secure sign-in with Google account
  • Profile management
  • Personalized learning experience
  • Progress saved to your account

Public Access:

  • Browse vocabulary without login
  • View word details publicly
  • Full features available after authentication
  • Edit and track progress when logged in

๐Ÿš€ Getting Started

Prerequisites

  • Node.js (v18 or higher)
  • MongoDB Atlas account or local MongoDB
  • Google OAuth credentials

Backend Setup

  1. Navigate to the backend directory:
cd backend
  1. Install dependencies:
npm install
  1. Create .env file with required variables:
PORT=5000
MONGODB_URI=your_mongodb_connection_string
DB_NAME=VocabPrep
JWT_SECRET=your_jwt_secret
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
GOOGLE_CALLBACK_URL=http://localhost:5000/api/auth/google/callback
CLIENT_URL=http://localhost:3000
  1. Start the development server:
npm run dev

Frontend Setup

  1. Navigate to the frontend directory:
cd frontend
  1. Install dependencies:
npm install
  1. Create .env.local file:
NEXT_PUBLIC_API_URL=http://localhost:5000/api
  1. Start the development server:
npm run dev
  1. Open http://localhost:3000 in your browser

๐Ÿ“ Project Structure

EnglishPrep/
โ”œโ”€โ”€ backend/
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ config/         # Configuration files
โ”‚   โ”‚   โ”œโ”€โ”€ middlewares/    # Express middlewares
โ”‚   โ”‚   โ”œโ”€โ”€ modules/        # Feature modules
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ auth/       # Authentication
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ vocabulary/ # Vocabulary CRUD
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ practice/   # Practice sessions
โ”‚   โ”‚   โ”œโ”€โ”€ routes/         # API routes
โ”‚   โ”‚   โ””โ”€โ”€ utils/          # Utility functions
โ”‚   โ””โ”€โ”€ api/
โ”‚       โ””โ”€โ”€ index.ts        # Vercel serverless entry
โ”œโ”€โ”€ frontend/
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ app/            # Next.js app router pages
โ”‚   โ”‚   โ”œโ”€โ”€ components/     # React components
โ”‚   โ”‚   โ”œโ”€โ”€ redux/          # Redux store & slices
โ”‚   โ”‚   โ””โ”€โ”€ lib/            # Utilities & helpers
โ”‚   โ””โ”€โ”€ public/             # Static assets
โ””โ”€โ”€ README.md

๐ŸŽจ Design System

VocabPrep uses a modern design system with:

  • Glass Morphism - Frosted glass effect for cards
  • Gradient Accents - Colorful gradients for visual appeal
  • Dark Mode - Full dark mode support
  • Animations - Smooth transitions with Framer Motion
  • Responsive Design - Mobile-first approach
  • Accessibility - WCAG compliant components

๐Ÿ”ฎ Future Enhancements

Planned Features

  • Spaced Repetition - Smart review scheduling based on forgetting curve
  • Word of the Day - Daily vocabulary challenges
  • Learning Streaks - Track consecutive days of learning
  • Export/Import - Backup and restore vocabulary data
  • Mobile App - Native mobile application
  • Collaborative Learning - Share and learn with friends
  • Advanced Analytics - Detailed learning insights
  • Custom Categories - Create personalized word collections
  • API Integration - Connect with external dictionary APIs
  • Offline Mode - Practice without internet connection

๐Ÿ“„ License

This project is open source and available under the MIT License.


๐Ÿ‘จโ€๐Ÿ’ป Developer

Atikur Rahman


๐Ÿค Contributing

Contributions, issues, and feature requests are welcome! Feel free to check the issues page.


โญ Show Your Support

Give a โญ๏ธ if this project helped you learn English vocabulary!


Built with โค๏ธ for English learners

About

A modern, focused web application to help you build and master English vocabulary through interactive learning, practice sessions, and progress tracking.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors