Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chmuhammadasim/cpp-codequest-mern-stack
CPlusPlusCodeQuest is an educational platform designed to teach basic C++ programming skills through interactive coding challenges and tutorials. Built with the MERN stack, it offers a modern and engaging learning experience.
https://github.com/chmuhammadasim/cpp-codequest-mern-stack
mern mern-project mern-stack project
Last synced: about 1 month ago
JSON representation
CPlusPlusCodeQuest is an educational platform designed to teach basic C++ programming skills through interactive coding challenges and tutorials. Built with the MERN stack, it offers a modern and engaging learning experience.
- Host: GitHub
- URL: https://github.com/chmuhammadasim/cpp-codequest-mern-stack
- Owner: chmuhammadasim
- Created: 2024-07-25T08:24:21.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-07-26T05:37:01.000Z (6 months ago)
- Last Synced: 2024-07-26T13:02:43.363Z (6 months ago)
- Topics: mern, mern-project, mern-stack, project
- Language: JavaScript
- Homepage:
- Size: 241 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CPlusPlusCodeQuest
CPlusPlusCodeQuest is an educational platform designed to teach basic C++ programming skills through interactive coding challenges and tutorials. Built with the MERN stack, it offers a modern and engaging learning experience.
## Features
- **User Authentication**: Secure user registration and login.
- **Interactive Code Editor**: Write, run, and test C++ code directly in the browser.
- **Daily/Weekly Challenges**: Regular challenges to help users practice and improve their skills.
- **Progress Tracking**: Monitor your progress and see how much you've learned.
- **Dark Mode**: Toggle between light and dark modes for a better user experience.
- **Notifications**: Get notified about new challenges, achievements, and more.## Tech Stack
- **Frontend**: React.js, Ace Editor
- **Backend**: Node.js, Express.js
- **Database**: MongoDB
- **Authentication**: JSON Web Tokens (JWT)
- **Styling**: CSS## Getting Started
### Prerequisites
- Node.js
- npm or yarn
- MongoDB### Installation
1. Clone the repository:
```bash
git clone https://github.com/yourusername/CPlusPlusCodeQuest.git
cd CPlusPlusCodeQuest
```2. Install the dependencies for both the backend and frontend:
```bash
# Backend
cd backend
npm install# Frontend
cd ../frontend
npm install
```3. Set up environment variables:
Create a `.env` file in the `backend` directory and add the following:
```
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
```4. Start the development servers:
```bash
# Backend
cd backend
npm start# Frontend
cd ../frontend
npm start
```The backend will run on `http://localhost:5000` and the frontend on `http://localhost:3000`.
## Usage
### User Authentication
- Register a new account or log in with an existing account.
- Once logged in, you will be redirected to your dashboard.### Interactive Code Editor
- Navigate to the "Challenges" page.
- Select a challenge to start coding.
- Write and test your C++ code directly in the browser.### Dark Mode
- Toggle dark mode from your profile page.
### Notifications
- Check the "Notifications" page for updates on new challenges and achievements.
## API Endpoints
### Authentication
- **POST /api/auth/register**: Register a new user.
- **POST /api/auth/login**: Log in a user.### User
- **GET /api/users/profile**: Get user profile information.
- **POST /api/users/darkmode**: Toggle dark mode.### Challenges
- **GET /api/challenges**: Get a list of challenges.
- **GET /api/challenges/:id**: Get details of a specific challenge.
- **POST /api/challenges**: Create a new challenge (admin only).
- **PUT /api/challenges/:id**: Update a challenge (admin only).
- **DELETE /api/challenges/:id**: Delete a challenge (admin only).### Notifications
- **GET /api/notifications**: Get user notifications.
- **POST /api/notifications/read/:id**: Mark a notification as read.## Contributing
We welcome contributions from the community! To contribute:
1. Fork the repository.
2. Create a new branch for your feature or bug fix.
3. Make your changes and commit them with a clear message.
4. Push your changes to your fork and submit a pull request.## License
This project is licensed under the MIT License.
## Contact
For any questions or feedback, feel free to contact us at [email protected].