Skip to content

ridika-2004/0Point

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

737 Commits
 
 
 
 
 
 

Repository files navigation

$\Huge\textbf{\color{#00D9FF}ZEROPOINT}$

$${\color{#5EEAD4}Practice, \space \color{#FBF3D4}compete \space \color{#D4D4FF}and \space \color{#5EEAD4}master \space \color{lightblue}algorithms \space \color{#FBF3D4}with \space \color{#D4D4FF}real-time \space \color{#FBF3D4}contests}$$

A comprehensive competitive programming platform designed for coders of all levels, featuring live contests, algorithm visualizations, mock interviews, AI assistance, and cross-platform integration.


Django React MongoDB WebSocket REST API JWT Docker Redis ML WebRTC




$\large\text{\color{#76DCF1}{Layer}}$ $\large\text{\color{#FD8FAB}{Technology}}$ $\large\text{\color{#52CCF6}{Version}}$
Frontend Library Vite+React.js 19.2.0
Backend Framework Django 4.0+
Database MongoDB 4.6+
Real-Time Redis 5.0+
Tools & Languages Python 3.9+

$\large\textbf{\color{#00D9FF}{User Roles}}$


$\large\text{\color{#76DCF1}{Role}}$ $\large\text{\color{#FD8FAB}{Description}}$
User Solve problems, participate in contests, write blogs, and track progress
Admin Manages the entire platform, creates contests, approves problems, and user governance


$\large\textbf{\color{#00D9FF}{Features}}$

$\large\textbf{\color{#98FB98}{Contest System}}$

  • Create and participate in live coding contests with real-time leaderboards
  • Multiple contest formats: public, private, virtual participation
  • Automatic time synchronization and penalty calculation
  • Contest clarifications and announcements
  • Post-contest editorials and solution discussions

$\large\textbf{\color{#AFF4E1}{Problem Solving \& Practice}}$

  • Extensive problem library with difficulty-based categorization
  • Support for multiple programming languages (C++, Python, Java)
  • Real-time code execution with detailed verdicts (AC, WA, TLE, MLE, RE, CE)
  • Test case visibility and debugging support

$\large\textbf{\color{#919DF3}{Cross-Platform Integration}}$

  • Sync profiles from Codeforces, LeetCode, AtCoder, CodeChef, HackerRank
  • Unified analytics across all competitive programming platforms
  • Aggregated contest calendar from multiple sources
  • Cross-platform rating tracking and statistics

$\large\textbf{\color{#00F8FF}{Algorithm Visualizer}}$

  • Interactive visualizations for sorting, graph, and tree algorithms
  • Step-by-step execution tracing with variable monitoring
  • Memory visualization and call stack display
  • Custom input support and animation speed control

$\large\textbf{\color{#FFFFA0}{Mock Interview System}}$

  • Timed interview sessions with company-specific problems
  • Built-in video conferencing via WebRTC
  • Peer-to-peer and mentor-guided interview practice
  • Performance feedback and improvement tracking

$\large\textbf{\color{#00E0FF}{AI Chatbot Assistant}}$

  • Intelligent coding assistance and debugging help
  • Algorithm explanations and concept clarification
  • Problem hints without revealing full solutions
  • Personalized learning resource recommendations

$\large\textbf{\color{#FF6B6B}{Problem Recommendation Engine}}$

  • ML-powered personalized problem suggestions
  • Difficulty prediction using trained models
  • Weak area identification and skill gap analysis
  • Progressive learning paths tailored to your level

$\large\textbf{\color{#C084FC}{Community \& Collaboration}}$

  • Blog system for sharing tutorials and insights
  • Discussion forums for problems and topics
  • User contributions tracking and recognition
  • Real-time chat and clarification system

$\large\textbf{\color{#4ADE80}{User Dashboard \& Analytics}}$

  • Comprehensive performance analytics with interactive charts
  • Problem-solving streaks and activity heatmaps
  • Topic-wise strength and weakness analysis
  • Verdict distribution and error pattern tracking

$\large\textbf{\color{#F472B6}{Admin Dashboard}}$

  • User management with ban/unban capabilities
  • Content moderation and problem approval workflow
  • Platform statistics and usage analytics
  • Announcement broadcasting and report handling

$\large\textbf{\color{#00D9FF}{File Structure}}$


zeropoint/
├── Client/
│   ├── public/
│   ├── src/
│   │   ├── assets/
│   │   ├── components/
│   │   ├── context/
│   │   ├── hooks/
│   │   ├── pages/
│   │   ├── services/
│   │   ├── utils/
│   │   ├── App.jsx
│   │   ├── index.css
│   │   └── main.jsx
│   ├── .env
│   ├── index.html
│   ├── package.json
│   └── vite.config.js
├── Server/
│   ├── account/
│   ├── admin/
│   ├── announcement/
│   ├── blog/
│   ├── Chatapp/
│   ├── clarification/
│   ├── compiler/
│   ├── contest/
│   ├── contribution/
│   ├── crossPlatform/
│   ├── difficulty_prediction/
│   ├── discussion/
│   ├── docker/
│   ├── executor/
│   ├── ide/
│   ├── leaderboard/
│   ├── mock_interview/
│   ├── notification/
│   ├── pdf/
│   ├── problem/
│   ├── public_leaderboard/
│   ├── recommendation/
│   ├── report/
│   ├── submission/
│   ├── testcase/
│   ├── testcontest/
│   ├── tutorial/
│   ├── utils/
│   ├── videoconference/
│   ├── virtual/
│   ├── zeropoint/
│   ├── manage.py
│   └── requirements.txt
├── .gitignore
└── README.md

$\large\textnormal{\color{#00D9FF}{Installation}}$


Clone the repository or download the zip file, then extract it in a folder.

$\large\textnormal{\color{#00D9FF}{How To Run}}$


Prerequisites

  • Install Python (v3.9+) and Node.js (v16+).

  • Open an account at MongoDB Atlas and collect the credentials.

  • Open account in Cloudinary and collect credentials from there.

  • Then download Redis from redis-release (use the latest zip version). Extract the files from redis-release zip file. Then click on redis-server.exe. To check the server is running or not:

    Open the command prompt, write:

    cd "path\to\extracted folder"
    redis-cli
    ping

    Or directly open redis-cli.exe. Then write ping. If it results in PONG, then the Redis server is connected successfully.

    Successful connection example:

    127.0.0.1:6379> ping
    PONG
    127.0.0.1:6379>

    [!TIP]
    If the redis-server.exe isn't running, go to Task Manager (Run as administrator).

    • Search for something like redis.
    • If it's on, click on end task.

    If it still doesn't work, try checking that port 6379 is already running or not:

    • Open command prompt.
    • Run:
      netstat -aon | findstr :6379
      If you see something like this, means this port is already in use.
    $\large\text{\color{#76DCF1}{Proto}}$ $\large\text{\color{#76DCF1}{Local Address}}$ $\large\text{\color{#76DCF1}{Foreign Address}}$ $\large\text{\color{#76DCF1}{State}}$ $\large\text{\color{#76DCF1}{PID}}$
    TCP 0.0.0.0:6379 0.0.0.0:0 LISTENING 14220
    TCP [::]:6379 [::]:0 LISTENING 14220
    - Kill this port (change the PID according to the output): ```console taskkill /PID 14220 /F ``` - Then try refreshing the PC and run the `redis-server.exe` again.

$\large\textnormal{\color{#00D9FF}{Server Directory}}$


Then go to the directory path (where the code is):

cd "path\to\directory"

Then open right-click and click open in Terminal. Then in terminal run:

code .

This will directly take you to the VS Code interface. In Server directory, open terminal and run:

For Linux/MacOS:

python -m venv env
source env/bin/activate

For Windows:

python -m venv env
.\env\Scripts\activate

Which will create the environment. Inside this, install the dependencies:

pip install -r requirements.txt

This will install all the pip dependencies required to run this code. If it doesn't work, run this in Command Prompt or in VS Code Terminal:

pip install Django djangorestframework mongoengine pymongo PyJWT python-dotenv requests pytz cloudinary django-cors-headers channels channels-redis django-redis redis daphne gunicorn beautifulsoup4 lxml google-generativeai numpy scikit-learn pandas joblib

Then run in Server directory:

daphne zeropoint.asgi:application

If it's missing the static directory it will give this error:

django.core.exceptions.ImproperlyConfigured: 
You're using the staticfiles app without having set the required STATIC_URL setting.

This happens when:

  • django.contrib.staticfiles is in INSTALLED_APPS
  • But forgot to define STATIC_URL (and optionally STATICFILES_DIRS)

Add this to settings.py:

import os

# Required
STATIC_URL = '/static/'

# Optional (for development)
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]

# Optional (for production use)
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

Create the static directory (if needed):

mkdir static

$\large\textnormal{\color{#00D9FF}{Client Directory}}$


In Client directory, open terminal and run:

npm install
npm run dev

Make sure Vite is installed as a dev dependency in your project. Check package.json inside Client/. If something like this is present:

"devDependencies": {
  "vite": "^7.1.2",  // or another version
  ...
}

It means Vite is present. If it's missing, install it:

npm install vite --save-dev

Tip

To fix vulnerabilities, run this:

npm audit fix

Or to fix all issues automatically (including breaking changes):

npm audit fix --force

Caution

Be cautious with --force. It may upgrade packages that break the project.

and serve it with Django or a production web server. Don't deploy with npm run build.

Important

  • This project uses ASGI (not WSGI), and runs via Daphne instead of python manage.py runserver.
  • Redis & MongoDB must be running before you start the app.

Note

The app runs on port 8000 by default. If port is taken, use daphne -b 127.0.0.1 -p 8080 zeropoint.asgi:application.

You can change the port (-p) or host (-b) as needed.

$\large\textnormal{\color{#EE4B2B}{Things To Consider}}$

Create a .env file inside Server/ directory with your configuration values for:

  • MONGO_DB_NAME
  • MONGO_URI
  • CLOUDINARY_CLOUD_NAME
  • CLOUDINARY_API_KEY
  • CLOUDINARY_API_SECRET
  • SECRET_KEY

List this in .env file inside Client/ directory:

VITE_API_URL=<your_backend_url>

Warning

Do not commit .env files to GitHub. Add them to .gitignore.


$\large\textbf{\color{#00D9FF}{Individual Contribution}}$


$\large\text{\color{#76DCF1}{Member}}$ $\large\text{\color{#FD8FAB}{Student ID}}$ $\large\text{\color{#52CCF6}{Contributions}}$
Ramisa Anan Rahman 220042105 Cross-Platform Problem Solving, Blogging, Analytic Dashboard, Problem Recommendation
Ridika Naznin 220042115 Contest Hosting & Proctoring, Leaderboard, Community & Discussion, Coding Help Chatbot
Afrin Jahan Era 220042132 Algorithom,I/o & Code Visualizer, Mock Interview, Admin (Report and ban user), Problem Difficulty Prediction

Happy Coding!

ZeroPoint - Elevate Your Competitive Programming Journey

About

0Point is a unified Competitive Programming platform where learners practice smarter, visualize algorithms, track multi-platform progress and join & host contests .

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 72.0%
  • Python 27.5%
  • CSS 0.3%
  • HTML 0.1%
  • C++ 0.1%
  • Shell 0.0%