A community-driven coding platform where everyone is both a student and an educator.
CodeLoop revolutionizes coding education by creating a unique environment where the traditional roles of students and educators blur. Every user contributes to the community's growth by both learning and teaching, creating a continuous loop of knowledge sharing.
- Interactive Code Editor: Write, compile, and execute code in real-time
- Peer Learning: Share your knowledge and learn from others
- Community Challenges: Solve and create coding challenges
- Multi-language Support: Practice in various programming languages
- Real-time Feedback: Get immediate feedback on your code
- Frontend: React with Tailwind CSS for modern, responsive UI
- Backend: Flask (Python) for robust API services
- Database: MySQL with SQLAlchemy ORM
- Code Execution: Judge0 API integration
- Authentication: JWT-based user authentication
- Python 3.8+
- Docker
- Clone the repository
git clone https://github.com/Matsadura/CodeLoop.git
cd CodeLoop
- Set up the Judge0
cd server/judge0
docker compose up -d db redis
sleep 10
docker compose up -d
- Set up the backend
cd server
python3 -m venv flask
source flask/bin/activate
pip3 install flask==2.1.0 werkzeug==2.1.1 flask-cors==4.0.1 sqlalchemy==1.4.22 mysqlclient==2.2.4 python-dotenv flask-jwt-extended requests
- Configure environment variables
export CODE_DB_HOST=0.0.0.0
export CODE_DB_NAME=CODE_DB
export CODE_DB_USER=CODE_USER
export CODE_DB_PASSWORD=CODE_PASSWORD
# Edit .env with your configuration
vim server/api/.env
CODE_API_HOST=0.0.0.0
CODE_API_PORT=5000
JWT_SECRET_KEY=your-key-here
- Start the application
# In the parent directory
docker compose up -d mysql client
# In server directory
python3 -m api.app
We welcome contributions!
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
- Judge0 API for code execution
Made with ❤️ by the CodeLoop Team