Unleash your potential with AlgoArena, the ultimate platform for mastering algorithms and data structures. Dive into a world of coding challenges, real-time code execution, and competitive leaderboards. Whether you're a student, a seasoned developer, or just starting your coding journey, AlgoArena provides the tools and resources you need to level up your skills and achieve coding mastery.
Why Choose AlgoArena?
- Sharpen Your Skills: Access a vast library of coding problems designed to challenge and improve your algorithmic thinking.
- Code in Any Language: Execute your solutions in multiple programming languages, ensuring flexibility and compatibility.
- Compete and Collaborate: Climb the leaderboards, track your progress, and connect with a vibrant community of coders.
AlgoArena is a platform designed to help users improve their algorithmic and problem-solving skills. It provides a wide range of coding problems, allows users to execute code in different languages, track their progress, and compete on leaderboards.
- Problem Solving: Access a diverse set of algorithmic problems with varying difficulty levels.
- Code Execution: Execute code submissions in multiple programming languages.
- User Authentication: Secure user registration, login, and social authentication.
- Progress Tracking: Monitor personal progress with streaks, solved problems, and yearly contribution grids.
- Leaderboards: Compete with other users and track rankings.
- Problem of the Day (POTD): Solve a daily challenge problem.
- Sheet Creation: Create custom problem sheets.
- Code Formatting: Format code using dockerized formatters.
- Backend: Node.js, Express.js
- Database: PostgreSQL with Prisma ORM
- Authentication: JSON Web Tokens (JWT)
- Code Execution: Judge0 API
- Cloud Storage: Cloudinary
- Containerization: Docker
- Formatting: Prettier, Black, Clang-Format, Google Java Format
-
Clone the repository:
git clone <repository-url> cd algoArena
-
Install dependencies:
npm install
-
Set up environment variables:
-
Create a
.envfile in the root directory. -
Add the following environment variables:
DATABASE_URL=<Your PostgreSQL Database URL> DIRECT_URL=<Your Direct PostgreSQL Database URL> ACCESS_SECRET=<Your Access Token Secret> REFRESH_SECRET=<Your Refresh Token Secret> JWT_SECRET=<Your JWT Secret> CLOUDINARY_CLOUD_NAME=<Your Cloudinary Cloud Name> CLOUDINARY_API_KEY=<Your Cloudinary API Key> CLOUDINARY_API_SECRET=<Your Cloudinary API Secret> JUDGE0_API_URL=<Your Judge0 API URL> RAPIDAPI_KEY=<Your RapidAPI Key> FRONTEND_URL=<Your Frontend URL> NODE_ENV=development or production
-
-
Run Docker containers:
docker-compose up --build
-
Run migrations:
npx prisma migrate dev
-
Start the server:
npm run dev
Contributions are welcome! Please follow these guidelines:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Write tests for your code.
- Submit a pull request with a clear description of your changes.
This project is licensed under the MIT License.