A comprehensive learning platform for English vocabulary with interactive lessons, smart review system, and progress tracking.
LinguaLearn is a full-stack application designed to help users learn and practice English vocabulary effectively. The application provides structured lessons across different proficiency levels, personalized review sessions, progress tracking, and a built-in dictionary.
- Interactive Lessons: Various types including vocabulary, conversation, listening, writing, and speaking
- Smart Review System: Optimized spaced repetition algorithm for better retention
- Progress Tracking: Detailed statistics and visualization of learning progress
- Dictionary: Integrated lookup tool for quick reference
- User Management: Authentication, profiles, and personalized learning paths
- Admin Dashboard: Comprehensive analytics and content management system
- Dark/Light Mode: Customizable interface for better user experience
- Framework: Next.js with React
- Styling: Tailwind CSS
- UI Components: Custom components built with Radix UI
- Animation: Framer Motion
- State Management: React Hooks
- Framework: Django/Django REST Framework
- Database: PostgreSQL
- Authentication: Django authentication system
- API Documentation: OpenAPI/Swagger
- Containerization: Docker
- Node.js (v16+)
- npm or yarn
- Python 3.10+
- PostgreSQL
- Docker & Docker Compose (optional)
- Navigate to the frontend directory:
cd vocab-app
- Install dependencies:
npm install
# or
yarn install
- Start development server:
npm run dev
# or
yarn dev
- Access the application at
http://localhost:3000
- Navigate to the backend directory:
cd backend
- Create and activate a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Configure the database in
.env
file (create if needed):
DB_NAME=yourdatabasename
DB_USER=yourusername
DB_PASSWORD=yourpassword
DB_HOST=localhost
SECRET_KEY=yoursecretkey
DEBUG=True
- Apply migrations:
python manage.py migrate
- Create a superuser:
python manage.py createsuperuser
- Start the development server:
python manage.py runserver
- Access the API at
http://localhost:8000/api/
- Access the admin interface at
http://localhost:8000/admin/
- Progress Overview: Visual representation of vocabulary mastery levels
- Daily Goals: Track daily learning targets and streaks
- Recommended Lessons: Personalized suggestions based on user progress
- Topic-Based Lists: Vocabulary organized by themes and difficulty levels
- Interactive Cards: Flip cards showing word, pronunciation, meaning, and examples
- Audio Pronunciation: Native speaker recordings of each vocabulary item
- Smart Review: Algorithm prioritizes words based on learning status
- Multiple Choice Questions: Test comprehension with various question types
- Writing Practice: Type answers to reinforce spelling and recall
- Review Results: Detailed performance statistics after each session
- Search Functionality: Quick lookup for any English word
- Detailed Entries: Definitions, examples, synonyms, and antonyms
- Save to Collection: Add useful words to personal vocabulary lists
- User Statistics: Active users, new registrations, and engagement metrics
- Learning Analytics: Most studied topics and completion rates
- System Performance: Server status and application metrics
- Lesson Editor: Create and modify learning materials and vocabulary lists
- Question Bank: Manage review questions and difficulty settings
- Media Library: Upload and organize images and audio files
- User Profiles: View and edit user information and learning progress
- Role Assignment: Set permissions for different user types
- Activity Logs: Monitor user engagement and system usage
The application is fully responsive, providing an optimal experience across desktop, tablet, and mobile devices with adaptive layouts and touch-friendly controls.
- Build the Docker images:
docker-compose build
- Start the containers:
docker-compose up
- Access the application at
http://localhost:8000
We welcome contributions from the community! Please read our Contributing Guidelines for more information.
This project is licensed under the MIT License. See the LICENSE file for details.
For any inquiries, please contact us at [email protected].