Skip to content

snap-iitr/CodeNebula

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Welcome to CodeNebula

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-client
  • codenebula-server
  • codenebula-api

💡 CodeNebula Empowers Users To:

  • 🎯 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

🌟 Project Overview

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.


🎨 Fabulous Features

  • 💻 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

🚀 Getting Started

Prerequisites

Pull Prebuilt Docker Images

git clone https://github.com/snap-iitr/CodeNebula.git
docker pull codenebula-client
docker pull codenebula-server
docker pull codenebula-api

Set Environment Variables

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_password

Running the Application

From the root directory, run:

docker-compose up --build

This command will build and start all services. The client will be available at http://localhost:5000.

Stopping the Application

To stop all running containers:

docker-compose down

🗂️ Folder Structure

/
├── 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

⚙️ Technologies Used

🖥️ Frontend

React Vite TailwindCSS TypeScript

🔧 Backend

Node.js Express

🧠 Python API

Python Flask Selenium

🗃️ Database

MySQL

🐳 DevOps

Docker Docker Compose


💡 Development Tips

  • The client and server folders have volume mounts for live code reloading.
  • Use npm run dev in the client for local frontend development.
  • Use npm start in 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.

📞 Contact

For questions or support, please open an issue or contact at souravsingla335@gmail.com


Made with ❤️ by Sourav

About

CodeNebula is a modern full stack web application designed for real-time head-to-head coding challenges.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published