A full-stack web application for IELTS test preparation, providing mock tests, feedback, and progress tracking for students preparing for the IELTS exam.
- User authentication (sign up, log in)
- Mock tests for all IELTS components:
- Listening
- Reading
- Writing
- Speaking
- Submit writing answers for review
- Schedule and manage speaking test sessions
- Track test history and progress
- Online support chat/ticket system
- Admin panel for managing users, tests, and reviewing submissions
- React.js
- React Router for navigation
- Styled Components for styling
- Formik and Yup for form validation
- Axios for API calls
- Chart.js for visualizations
- Node.js
- Express.js
- MySQL database
- Sequelize ORM
- JWT for authentication
- bcrypt for password hashing
- Node.js (v14.x or higher)
- MySQL (v8.x or higher)
- Bun (v1.x) - recommended for better package management
- Clone the repository
git clone https://github.com/yourusername/ielts-prep-app.git
cd ielts-prep-app- Install dependencies
# Install backend dependencies
cd server
bun install
# Install frontend dependencies
cd ../client
bun install- Configure environment variables
# In the server directory, create a .env file
cp .env.example .envEdit the .env file to add your database credentials and other configuration.
- Initialize the database
# Create and configure your MySQL database
mysql -u root -p
CREATE DATABASE ielts_prep_db;
EXIT;- Start the development servers
# Start backend server
cd server
bun run dev
# In a new terminal, start frontend server
cd client
bun run devThe application will be available at:
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
ielts-prep-app/
├── client/ # Frontend React application
│ ├── public/ # Static files
│ └── src/ # React source files
│ ├── assets/ # Images, fonts, etc.
│ ├── components/ # Reusable components
│ ├── context/ # React context providers
│ ├── hooks/ # Custom hooks
│ ├── pages/ # Page components
│ ├── services/ # API service functions
│ └── utils/ # Utility functions
│
└── server/ # Backend Node.js application
├── config/ # Configuration files
├── controllers/ # Route controllers
├── middlewares/ # Express middlewares
├── models/ # Sequelize models
├── routes/ # API routes
├── services/ # Business logic
└── utils/ # Utility functions
The API endpoints are organized by resource:
/api/auth- Authentication (login, register, etc.)/api/tests- IELTS tests and questions/api/speaking-tests- Speaking test scheduling/api/support- Support ticket system/api/admin- Admin-only operations
For detailed API documentation, please refer to the API Documentation file.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.