Boost.dev is a Django-based web application designed to help developers overcome imposter syndrome through interactive challenges, community support, and AI-powered feedback.
- Framework: Django 5.2
- Database: PostgreSQL (via dj_database_url)
- Authentication: Django Auth + Social Auth (GitHub, Google, Facebook, LinkedIn)
- Environment Management: python-dotenv
- Static Files: WhiteNoise with compressed manifest storage
- CSS Framework: Tailwind CSS (via django-tailwind)
- Admin Interface: Grappelli
- Responsive Design: Mobile-first approach
- AI Integration: Google Gemini API for challenge feedback and generation
- News API: Tech news aggregation
- Social Authentication: OAuth2 providers
boost.dev/
├── boost_dev/ # Main Django project
│ ├── settings.py # Configuration
│ ├── urls.py # Root URL patterns
│ └── wsgi.py # WSGI configuration
├── challenges/ # Coding challenges system
├── dashboard/ # Main dashboard and community features
├── users/ # User management and progress tracking
├── wins/ # Daily wins system
├── services/ # External API integrations
├── theme/ # Tailwind CSS theme
├── static/ # Static files
├── documentation/ # Project documentation
└── requirements.txt # Python dependencies
Purpose: User management, authentication, progress tracking, and achievements
Key Models:
UserProfile: Extended user informationUserProgress: Points, levels, achievementsAchievement: Available achievementsUserAchievement: User-earned achievementsUserFlag: Temporary event notificationsNotification: User notifications
Key Features:
- Social authentication integration
- Progress tracking with 5-level system
- Achievement system
- User profile management
Purpose: Coding challenges with AI feedback
Key Models:
Challenge: Coding challenges with difficulty levelsChallengeSolution: User submissions with AI feedbackQuoteSubmission: Motivational quotes (temporary)
Key Features:
- Challenge creation and management
- AI-powered solution feedback
- Difficulty-based filtering
- Progress tracking integration
Purpose: Main user interface and community features
Key Features:
- User dashboard
- Community hub
- Tech news integration
- Landing page
Purpose: Daily wins tracking and community celebration
Key Models:
DailyWin: User daily achievements- Win celebrations and sharing
Key Features:
- Daily win submission
- Community win sharing
- Celebration system
Purpose: External API integrations and AI services
Key Modules:
ai_challenge.py: Gemini AI integrationai_feedback.py: AI feedback generationnews/: News API integrationweather.py: Weather data (if used)
urlpatterns = [
path('', dashboard_views.home, name='home'), # Landing page
path('dashboard/', include('dashboard.urls', namespace='dashboard')),
path('register/', user_views.register_view, name='register'),
path('accounts/', include('social_django.urls', namespace='social')),
path('login/', user_views.login_view, name='login'),
path('users/', include('users.urls')),
path('admin/', admin.site.urls),
path('challenges/', include('challenges.urls')),
path('wins/', include('wins.urls')),
]/dashboard/- Main dashboard/dashboard/community/- Community hub/dashboard/tech_news/- Tech news feed
/challenges/- Challenge list/challenges/new/- Create challenge/challenges/<id>/- Challenge detail/challenges/<id>/submit/- Submit solution/challenges/generate/- AI challenge generation
/wins/submit/- Submit daily win/wins/my-wins/- User's wins history/wins/community/- Community wins/wins/celebrate/<id>/- Celebrate win
UserProgress:
- points: IntegerField (cumulative points)
- level: IntegerField (1-5)
- next_level_threshold: IntegerField
Level Thresholds:
- Level 1 (Rookie): 0-29 points
- Level 2 (Explorer): 30-69 points
- Level 3 (Hacker): 70-119 points
- Level 4 (Wizard): 120-199 points
- Level 5 (Master): 200+ points
- Daily win: +20 points
- Beginner challenge: +30 points
- Intermediate challenge: +45 points
- Hard challenge: +60 points
- Creating challenge: +40 points
- Profile update: +15 points
# Challenge feedback generation
feedback = get_challenge_feedback(solution_text, challenge, username)
# New challenge generation
challenge = generate_new_challenge(difficulty, topic, username)- Cached tech news fetching
- Category-based filtering
- Rate limiting consideration
- User registration/login via Django forms
- Profile creation signal triggers
- Initial UserProgress and achievements created
- OAuth2 flow with external providers
- User profile auto-creation
- Seamless integration with existing accounts
- Automatic profile creation on user registration
- Achievement awarding on level-up
- Progress tracking automation
- Django forms for user input
- CSRF protection
- Field validation
- App-specific template directories
- Shared base templates
- Component-based design
SECRET_KEY: Django secret keyDATABASE_URL: Database connectionGEMINI_API_KEY: AI service authenticationNEWS_API_KEY: News service authentication- Social auth credentials
- CSRF protection
- User authentication requirements
- Environment-based configuration
- Secure static file serving
Procfile: Web server configuration- Environment variables via Config Vars
- Static file serving via WhiteNoise
- PostgreSQL database addon
- Collected to
staticfiles/directory - Served via WhiteNoise in production
- Tailwind CSS compilation
- Query optimization for challenge lists
- Pagination for large datasets
- Related object prefetching
- News API response caching
- Static file compression
- Template fragment caching (future enhancement)
- REST API for mobile app
- Real-time notifications
- Advanced analytics
- Extended AI integration
- Modular app design
- Service-oriented external integrations
- Database abstraction layer