A comprehensive platform for learning, visualizing, and mastering algorithms.
You MUST include the script name:
# CORRECT
./docker-control.sh start
./docker-control.sh stop
./docker-control.sh status
# WRONG - These won't work
start
stop
statusecho "" >> ~/.zshrc
echo "alias aos='./docker-control.sh start'" >> ~/.zshrc
echo "alias aop='./docker-control.sh stop'" >> ~/.zshrc
source ~/.zshrc
# Now use:
aos # Start
aop # Stopecho "" >> ~/.bashrc
echo "alias aos='./docker-control.sh start'" >> ~/.bashrc
echo "alias aop='./docker-control.sh stop'" >> ~/.bashrc
source ~/.bashrccd algoflow
# Linux/Mac:
./docker-control.sh start
# Windows:
docker-control.batAccess Points:
- Frontend: http://localhost
- Backend API: http://localhost:8000/api
- Django Admin: http://localhost:8000/admin
- Modern React 19 + TypeScript
- Responsive design (Mobile, Tablet, Desktop)
- Dark/Light theme support
- Real-time code execution
- Interactive visualizations
- Role-based access control
- Django 5 + Django REST Framework
- JWT authentication
- Email verification
- Password reset
- Staff/Admin permissions
- Rate limiting
- CORS enabled
- CRUD operations
- Multi-language support (Python, C++, C, Rust)
- Separate outcome/runtime for each implementation
- Category management
- Asset attachments
- Quiz system
┌─────────────────────────────────────┐
│ Frontend (React 19) │
│ Login | Dashboard | Algorithms │
│ Register | Forge | AI Assist │
└──────────────┬──────────────────────┘
│ HTTP/HTTPS (JSON)
▼
┌─────────────────────────────────────┐
│ Backend (Django REST) │
│ Auth | Algorithms | Categories │
└──────────────┬──────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ Database (SQLite) │
└─────────────────────────────────────┘
./docker-control.sh start # Start containers
./docker-control.sh stop # Stop containers
./docker-control.sh restart # Restart containers
./docker-control.sh logs # View logs
./docker-control.sh status # Check status
./docker-control.sh clean # Remove all (WARNING!)
./docker-control.sh superuser # Create admin
./docker-control.sh migrate # Run migrations
./docker-control.sh help # Show helpFirst Time:
./docker-control.sh start
./docker-control.sh superuser
./docker-control.sh statusDaily:
# Morning
./docker-control.sh start
# Evening
./docker-control.sh stopTroubleshooting:
./docker-control.sh status
./docker-control.sh logs
./docker-control.sh restart- Docker & Docker Compose
- OR Python 3.11+ and Node.js 20+
cd algoflow
./docker-control.sh startBackend:
cd algoflow_django
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
pip install -r requirements.txt
python manage.py migrate
python manage.py createsuperuser
python manage.py runserverFrontend:
cd algoflow_frontend
npm install
npm run dev| Feature | Anonymous | User | Staff | Admin |
|---|---|---|---|---|
| View | ✅ | ✅ | ✅ | ✅ |
| Dashboard | ❌ | ✅ | ✅ | ✅ |
| Create | ❌ | ❌ | ✅ | ✅ |
| Admin Panel | ❌ | ❌ | ✅ | ✅ |
- Login as staff/admin
- Go to Forge (
/forge) - Enter algorithm details
- Click Initialize
- View in library
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/auth/register/ |
Register |
| POST | /api/auth/login/ |
Login |
| POST | /api/auth/logout/ |
Logout |
| GET | /api/auth/check/ |
Check auth |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/algorithms/ |
List all |
| POST | /api/algorithms/ |
Create |
| GET | /api/algorithms/<id>/ |
Get one |
| PUT | /api/algorithms/<id>/ |
Update |
| DELETE | /api/algorithms/<id>/ |
Delete |
algoflow/
├── algoflow_django/ # Backend
│ ├── account/ # Auth app
│ ├── algorithms/ # Algorithms app
│ └── manage.py
├── algoflow_frontend/ # Frontend
│ ├── src/
│ └── package.json
├── docker-compose.yml
├── docker-control.sh # Linux/Mac
└── docker-control.bat # Windows
Backend:
cd algoflow_django
python manage.py testFrontend:
cd algoflow_frontend
npm testdocker-compose logs backend
docker-compose exec backend python manage.py migratedocker-compose logs frontend
docker-compose up -d --build frontend# WARNING: Deletes all data
docker-compose down -v
docker-compose up -d
./docker-control.sh migrate# Find process on port 8000
lsof -i :8000
kill -9 <PID>