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 [email protected]
Made with β€οΈ by Sourav