An interactive Django web application that displays World Bank data through dynamic charts and graphs.
- Interactive Charts: Line charts, bar charts, and area charts using Chart.js
- Dynamic Data: Real-time data fetching from World Bank Open Data API
- Filtering System: Filter by countries, date ranges, and categories
- Responsive Design: Mobile-friendly Bootstrap interface
- Django built-in authentication system
- Login/logout functionality
- Protected dashboard access for authenticated users only
- GDP Trends (Line Chart): Shows GDP over time for selected countries
- Population Comparison (Bar Chart): Compares population across countries
- CO2 Emissions (Area Chart): Environmental data visualization over time
- Backend: Django 4.2.7, Django REST Framework
- Frontend: HTML5, CSS3, JavaScript, Bootstrap 5, Chart.js
- Database: SQLite (development), PostgreSQL (production)
- API: World Bank Open Data API
- Deployment: Heroku/Render ready
World Bank Open Data
- URL: https://data.worldbank.org/
- Indicators Used:
- GDP (Current US$):
NY.GDP.MKTP.CD - Population Total:
SP.POP.TOTL - CO2 Emissions:
EN.ATM.CO2E.KT
- GDP (Current US$):
-
Clone the repository
git clone https://github.com/1234-ad/deepq-ai-dashboard.git cd deepq-ai-dashboard -
Create virtual environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies
pip install -r requirements.txt
-
Set up environment variables
cp .env.example .env # Edit .env with your settings -
Run migrations
python manage.py migrate
-
Create superuser
python manage.py createsuperuser
-
Run development server
python manage.py runserver
-
Access the application
- Dashboard: http://localhost:8000/
- Admin: http://localhost:8000/admin/
- Username:
admin - Password:
admin123
-
Install Heroku CLI
-
Login to Heroku
heroku login
-
Create Heroku app
heroku create your-app-name
-
Set environment variables
heroku config:set SECRET_KEY=your-secret-key heroku config:set DEBUG=False
-
Deploy
git push heroku main
-
Run migrations
heroku run python manage.py migrate heroku run python manage.py createsuperuser
- Render: Connect GitHub repo and deploy
- Vercel: For static frontend deployment
- Netlify: For static site hosting
- Railway: Simple deployment platform
deepq-ai-dashboard/
βββ dashboard_project/ # Django project settings
β βββ __init__.py
β βββ settings.py
β βββ urls.py
β βββ wsgi.py
βββ dashboard/ # Main Django app
β βββ __init__.py
β βββ admin.py
β βββ apps.py
β βββ models.py
β βββ urls.py
β βββ views.py
βββ templates/ # HTML templates
β βββ base.html
β βββ dashboard/
β β βββ dashboard.html
β βββ registration/
β βββ login.html
βββ static/ # Static files (CSS, JS, images)
βββ requirements.txt # Python dependencies
βββ manage.py # Django management script
βββ Procfile # Heroku deployment
βββ runtime.txt # Python version
βββ README.md # Project documentation
GET /api/gdp-data/- GDP data with country and year filtersGET /api/population-data/- Population data with filtersGET /api/co2-data/- CO2 emissions data with filters
countries: Semicolon-separated country codes (e.g.,US;CN;IN)start_year: Start year for data rangeend_year: End year for data range
- Django backend with REST API
- Interactive dashboard with multiple chart types
- Dynamic data fetching from backend
- Filtering system (countries, date ranges)
- User authentication (login/logout)
- Protected dashboard access
- World Bank Open Data integration
- Deployment ready
- Responsive design
- Loading indicators
- Error handling
- Professional UI/UX
- Multiple chart types (Line, Bar, Area)
- Real-time data updates
- Admin interface
- Documentation
- CSRF protection
- User authentication required
- Secure session management
- Environment variable configuration
- SQL injection protection (Django ORM)
- Chrome (recommended)
- Firefox
- Safari
- Edge
- Mobile browsers
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open Pull Request
This project is created for the DeepQ-AI Full Stack Developer Intern assignment.
Created by: Your Name
- GitHub: @1234-ad
- Assignment: DeepQ-AI Full Stack Developer Intern Position
For any questions or issues, please create an issue in the GitHub repository.
Assignment Completion Date: August 25, 2025 Company: DeepQ-AI Position: Full Stack Developer Intern