CodeNebula is a modern full stack web application designed for real-time head-to-head coding challenges. It enables users to stake ETH via blockchain integration, compete on programming problems, and win rewards — all in a secure, AI-assisted environment.
This is not just a game — it's a next-generation coding battleground driven by AI and Web3.
🌐 Website Link: Click Here!
🐳 Docker Images:
codenebula-clientcodenebula-servercodenebula-api
- 🎯 Solve CP problems to win ETH
- 🧠 Get intelligent, non-code hints powered by LLM agents
- 🔐 Connect wallets, stake ETH, and win real rewards
- 👥 Add friends
- 🏆 Checkout Live Leaderboard
| Service | Description | Port |
|---|---|---|
| Client | React frontend built with Vite and Tailwind CSS | 5000 |
| Server | Node.js backend handling business logic and database interaction | 3000 |
| API | Python Flask API providing additional endpoints and services | 8000 |
| MySQL | Relational database for persistent storage | 3307 |
The services are containerized using Docker and managed with docker-compose for easy setup and development.
- 💻 Modern React frontend using TypeScript, Tailwind CSS, and Vite
- 🔒 Secure Web3 authentication and ETH staking
- 🧠 AI-powered hint system using LangChain + Groq + Mixtral
- 🛠️ Robust backend with Node.js, Express, and REST APIs
- 🧪 Python Flask API to generate problem statement and submit the code
- 🗃️ MySQL database with clean schema and indexing
- 🐳 Full Docker support with hot-reloading and volume mounting
- 📊 Leaderboard and user profile stats
- 👥 Friend's Profile system with complete stats
- Docker installed on your machine
- Docker Compose (usually comes with Docker Desktop)
git clone https://github.com/snap-iitr/CodeNebula.git
docker pull codenebula-client
docker pull codenebula-server
docker pull codenebula-api
Create .env files in the respective folders (client/, server/, api/) with the necessary environment variables. Example variables for MySQL are set in the root .env file or your shell environment:
DB_ROOT_PASSWORD=your_root_password
DB_NAME=your_database_name
DB_USER=your_database_user
DB_PASSWORD=your_database_passwordFrom the root directory, run:
docker-compose up --buildThis command will build and start all services. The client will be available at http://localhost:5000.
To stop all running containers:
docker-compose down/
├── client/ # React frontend application
├── server/ # Node.js backend server
├── api/ # Python Flask API service
├── docker-compose.yml # Docker Compose configuration
├── init.sql # MySQL initialization script
└── README.md # This file
- The client and server folders have volume mounts for live code reloading.
- Use
npm run devin the client for local frontend development. - Use
npm startin the server for local backend development. - The API service runs with Flask in development mode.
- MySQL data is persisted in a Docker volume named
mysql_data.
For questions or support, please open an issue or contact at souravsingla335@gmail.com
Made with ❤️ by Sourav