A Django-based platform for coding challenges with social features and gamification.
-
Structured Learning Paths
- Categorized challenges
- Prerequisites system
- Estimated completion times
- Attachments and resources
- Progress tracking
-
Coding Challenges
- Multiple difficulty levels
- Point-based rewards
- Solution submissions
- Code documentation
- Test cases and templates
-
Progress Tracking
- Category-based progress
- Completion statistics
- Achievement titles
- Learning path progress
- Recent activity
-
Social Features
- Follow other developers
- Like/dislike solutions
- Comment on submissions
- Private/public solutions
- Django 3.2+
- Django REST Framework
- JWT Authentication
- PostgreSQL
- AWS S3 Compatible Storage
- Custom Test Runner
- Clone the repository:
git clone https://github.com/yourusername/devsplug-server.git
cd devsplug-server- Set up virtual environment:
python -m venv env
source env/bin/activate # Linux/Mac
env\Scripts\activate # Windows- Install dependencies:
pip install -r requirements.txt-
Configure environment variables: Copy
.env.exampleto.envand update the values:DEBUG=True SECRET_KEY=your-secret-key DB_NAME=devsplug DB_USER=postgres ... -
Run migrations:
python manage.py migrate- Load sample data (optional):
python manage.py populate_challenges- Start the server:
python manage.py runserverRun the test suite:
python manage.py testExample test output:
================================================================================
📊 Test Execution Report
================================================================================
📁 authentication.tests
--------------------------------------------------------------------------------
✅ test_user_login
📝 Test user login with valid credentials
📥 Response:
• Status: Success
• Data: {'access_token': 'Received'}
✅ test_follow_user
📝 Test that a user can successfully follow another user
📥 Response:
• Status: Created Successfully
...
For detailed documentation about:
- API Endpoints
- Models & Database Schema
- Testing Infrastructure
- Development Guidelines
See Documentation.md
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Write tests for your changes
- Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- asbilim - Initial work - GitHub
- Django community
- All contributors
- Open source community