⚠️ Project Under Development:
This project is currently in active development. Features, APIs, and documentation are subject to change. Contributions, suggestions, and feedback are welcome!
- Implement
/api/eventsendpoint (with filtering, pagination, and validation). - Implement
/api/events/<event_id>endpoint (fetch event by ID with error handling). - Implement
/api/events/categoriesand/api/events/locationsendpoints. - Connect backend to static JSON data (initial MVP).
- Set up frontend app structure (React or Vue.js).
- Timeline component with interactive controls (zoom, scroll, select).
- Map visualization (integrate Leaflet.js).
- Display events on map and timeline, enable click-to-view details.
- Implement event filters (time period, category, location).
- Expand and refine sample historical event data.
- Add more locations and categories for filtering.
- Add data validation scripts/utilities.
- Add Material-UI for styling and layout.
- Responsive layout for mobile/web.
- Tooltips, modals, or popups for event details.
- Error/loading states and user feedback.
- Integrate with external APIs (Wikipedia, Wikidata, etc.) for dynamic event loading.
- Implement user curation/admin interface for event data.
- Migrate data to PostgreSQL, update API accordingly.
- User accounts, favoriting/bookmarking events.
- Write unit/integration tests for backend and frontend.
- Improve API and contributor documentation.
- Prepare production deployment configs.
Core Features:
- Interactive timeline visualization
- Historical events database
- Geographic filtering (events around the world)
- Time period filtering
- Event viewgeolocation on map and we can see it precisely where event is happening at the time
Frontend:
- React or Vue.js - for UI components
- D3.js - for timeline visualization
- Leaflet.js - for geographic visualization
- Material-UI - for styling
Backend:
- Python/Flask - for API
- PostgreSQL - for database implementation in future
- Static JSON files for MVP
Data Source:
- Sample data for MVP
- Future integration with Wikipedia API, Wikidata, or historical events APIs
- Manual curation for quality
Base URL: http://localhost:5000
| Endpoint | Method | Description |
|---|---|---|
/ |
GET | Returns API status and version information. |
/api/events |
GET | Retrieve all historical events with optional filtering. |
/api/events/<event_id> |
GET | Retrieve a specific event by its ID. |
/api/events/categories |
GET | Returns a list of all unique event categories. |
/api/events/locations |
GET | Returns a list of all unique event locations. |
Query Parameters:
start_year- Filter events from this year onwardsend_year- Filter events up to this yearlocation- Filter by location (case-insensitive)category- Filter by category (case-insensitive)
| Endpoint Example | Description |
|---|---|
GET /api/events?start_year=1900&end_year=2000&category=technology |
Retrieve all events from 1900 to 2000, filtered by category technology. |
GET /api/events/<event_id> |
Retrieve a specific event by its ID. |
GET /api/events/categories |
Returns a list of all unique event categories. |
GET /api/events/locations |
Returns a list of all unique event locations. |
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python app.py