Master Your Vocabulary, One Word at a Time
Features β’ Live Demo β’ Tech Stack β’ Getting Started β’ Structure β’ Contributing
Vocaply is a modern, feature-rich vocabulary learning application designed to help users expand their English vocabulary through personalized daily word selections, progress tracking, and interactive learning experiences. Built with React and Firebase, it offers a seamless, responsive experience across all devices.
Experience Vocaply now! No installation required.
| Feature | Description |
|---|---|
| π Authentication | Sign up/Login with Email or Google |
| π Word Learning | Daily personalized vocabulary selections |
| π Progress Tracking | Track your learning journey with stats |
| β Favorites | Save words you want to remember |
| π± Responsive | Works perfectly on mobile, tablet & desktop |
| Feature | Description |
|---|---|
| Daily Words | Get personalized word selections every day |
| Smart Progress Tracking | Visual stats showing your learning journey |
| Favorites System | Star and save words for quick review |
| Streak Counter | Stay motivated with daily learning streaks |
| Word Details | Meanings, examples, and pronunciations |
| Feature | Description |
|---|---|
| Email/Password | Traditional secure authentication |
| Google Sign-In | One-click Google authentication |
| Protected Routes | Secure access to user-specific data |
| Firestore Rules | Server-side data protection |
| Feature | Description |
|---|---|
| Modern UI | Clean, premium glassmorphism design |
| Dark Mode Ready | Easy on the eyes |
| Micro-animations | Smooth, engaging interactions |
| Responsive Design | Perfect on any screen size |
| Technology | Purpose |
|---|---|
| React 18 | UI Component Library |
| Vite | Build Tool & Dev Server |
| Tailwind CSS | Utility-First Styling |
| Framer Motion | Animations & Transitions |
| React Router v6 | Client-Side Routing |
| Lucide React | Modern Icon Library |
| Technology | Purpose |
|---|---|
| Firebase Auth | User Authentication |
| Cloud Firestore | NoSQL Database |
| Firebase Hosting | Production Deployment |
| Cloud Functions | Serverless Backend Logic |
| Tool | Purpose |
|---|---|
| ESLint | Code Linting |
| Prettier | Code Formatting |
| Git | Version Control |
Before you begin, ensure you have the following installed:
| Requirement | Version | Check Command |
|---|---|---|
| Node.js | 18.x or higher | node --version |
| npm | 9.x or higher | npm --version |
| Git | Latest | git --version |
git clone https://github.com/mdjameee400/vocaply.git
cd vocaplynpm installCreate your environment file by copying the example:
# Windows (Command Prompt)
copy .env.example .env
# Windows (PowerShell)
Copy-Item .env.example .env
# macOS / Linux
cp .env.example .env- Go to Firebase Console
- Create a new project or use existing one
- Enable Authentication (Email/Password & Google)
- Create a Firestore Database
- Go to Project Settings β General β Your Apps β Web App
- Copy the config values to your
.envfile:
VITE_FIREBASE_API_KEY=your_api_key_here
VITE_FIREBASE_AUTH_DOMAIN=your-project.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your-project-id
VITE_FIREBASE_STORAGE_BUCKET=your-project.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
VITE_FIREBASE_APP_ID=your_app_id
VITE_FIREBASE_MEASUREMENT_ID=G-XXXXXXXXXXnpm run devπ Open http://localhost:5173 in your browser!
vocaply/
βββ π public/ # Static assets
β βββ logo.png # App logo
β βββ ...
β
βββ π src/ # Source code
β βββ π components/ # Reusable UI components
β β βββ π Dashboard/ # Dashboard-specific components
β β β βββ TodaysWords.jsx # Daily word display
β β β βββ WordList.jsx # Word listing
β β β βββ ...
β β βββ π Layout/ # Layout components
β β β βββ Navbar.jsx # Navigation bar
β β β βββ Sidebar.jsx # Side navigation
β β β βββ ...
β β βββ π ui/ # Base UI components
β β
β βββ π context/ # React Context providers
β β βββ AuthContext.jsx # Authentication state
β β
β βββ π firebase/ # Firebase configuration
β β βββ config.js # Firebase initialization
β β
β βββ π hooks/ # Custom React hooks
β β βββ useVocabulary.js # Vocabulary data hook
β β
β βββ π pages/ # Page components
β β βββ Home.jsx # Landing page
β β βββ Dashboard.jsx # User dashboard
β β βββ Login.jsx # Authentication page
β β βββ Progress.jsx # Progress tracking
β β βββ ...
β β
β βββ App.jsx # Main app component
β βββ main.jsx # App entry point
β βββ index.css # Global styles
β
βββ π functions/ # Firebase Cloud Functions
β βββ index.js # Serverless functions
β
βββ π .env.example # Environment template
βββ π .gitignore # Git ignore rules
βββ π firebase.json # Firebase config
βββ π firestore.rules # Database security rules
βββ π package.json # Dependencies
βββ π tailwind.config.js # Tailwind configuration
βββ π vite.config.js # Vite configuration
βββ π README.md # This file
| Command | Description |
|---|---|
npm run dev |
Start development server at localhost:5173 |
npm run build |
Create production build in dist/ folder |
npm run preview |
Preview production build locally |
npm run lint |
Run ESLint for code quality |
| Command | Description |
|---|---|
firebase login |
Authenticate with Firebase CLI |
firebase deploy |
Deploy everything (hosting, rules, functions) |
firebase deploy --only hosting |
Deploy only website changes |
π‘ Quick Tip: To update your live link manually, always run
npm run buildfirst, thenfirebase deploy --only hosting.
To keep your live link automatically updated every time you push code to GitHub, follow these steps:
Run this command in your terminal and follow the prompts:
firebase init hosting:github- For "For which GitHub repository?": Enter
mdjameee400/vocaply - For "Set up a workflow to run a build script before every deploy?": Yes
- For "What script should be run before every deploy?":
npm ci && npm run build - For "Set up automatic deployment to your site's live channel when a PR is merged?": Yes
- For "What is the name of the GitHub branch associated with your site's live channel?":
main
Once set up, Firebase will create a file in .github/workflows/. Now, whenever you run:
git add .
git commit -m "Your changes"
git push origin mainGitHub will automatically build your app and deploy it to https://vocaply.web.app/. You don't have to run the deploy command manually anymore!
All sensitive credentials are stored in .env files which are NOT committed to the repository.
| File | Purpose | Git Status |
|---|---|---|
.env |
Your actual credentials | π Ignored |
.env.example |
Template for others | β Committed |
Our database is protected with security rules that ensure:
- β Users can only access their own data
- β Authentication is required for all operations
- β Data validation on write operations
// Example rule structure
match /users/{userId} {
allow read, write: if request.auth != null && request.auth.uid == userId;
}We welcome contributions! Here's how you can help:
Click the "Fork" button at the top right of this page.
git clone https://github.com/YOUR_USERNAME/vocaply.git
cd vocaplygit checkout -b feature/your-feature-nameMake your changes and test them locally.
git add .
git commit -m "Add: your feature description"
git push origin feature/your-feature-nameGo to the original repository and click "New Pull Request".
| Feature | Status |
|---|---|
| β User Authentication | Complete |
| β Daily Word Selection | Complete |
| β Progress Tracking | Complete |
| β Favorites System | Complete |
| π Chrome Extension | In Progress |
| π Spaced Repetition | Planned |
| π AI Word Recommendations | Planned |
| π Multi-language Support | Planned |
β "Firebase API Key is missing or invalid"
- Check if
.envfile exists in root directory - Verify all
VITE_FIREBASE_*variables have values - Restart the development server:
npm run dev - Make sure there are no extra spaces in your
.envfile
β "npm install" fails
- Delete
node_modulesfolder andpackage-lock.json - Clear npm cache:
npm cache clean --force - Run
npm installagain
β Page shows blank after login
- Check browser console for errors (F12)
- Verify Firestore rules are deployed
- Check if user document exists in Firestore
β Environment variables not working
- Variables must start with
VITE_for Vite - Restart dev server after changing
.env - Check for typos in variable names
This project is licensed under the MIT License - see the LICENSE file for details.
MIT License
Copyright (c) 2026 Vocaply
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software...
MD Jamee
- Firebase - Backend services
- React - UI framework
- Tailwind CSS - Styling
- Lucide Icons - Beautiful icons
- Framer Motion - Animations
β If you found this project helpful, please give it a star!
Made with β€οΈ for vocabulary learners everywhere
