Digital Parliament Hansard Backend for Government of Malaysia
This is the backend system for the Digital Parliament Hansard project, providing APIs for searching, analyzing, and summarizing parliamentary proceedings in Malaysia.
- Parliamentary Data Management: Store and manage hansard data from Dewan Rakyat, Dewan Negara, and Kamar Khas
- Advanced Search: Full-text search across parliamentary speeches with filtering options
- AI Summarization: Automatic generation of bilingual summaries (English & Bahasa Malaysia) using OpenAI
- Analytics: Attendance tracking, speaker analysis, and parliamentary statistics
- RESTful APIs: Comprehensive API endpoints for frontend integration
- Python 3.11+
- PostgreSQL
- OpenAI API key (for AI summarization)
-
Clone the repository
git clone <repository-url> cd hansards-back
-
Set up virtual environment
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies
make init
-
Configure environment
cp env.example .env # Edit .env with your configuration -
Run database migrations
python src/manage.py migrate
-
Start development server
python src/manage.py runserver
The system includes AI-powered summarization of parliamentary sessions:
- Bilingual Support: Summaries in English and Bahasa Malaysia
- Cost Optimization: Database storage to avoid repeated API calls
- Async Processing: Non-blocking summary generation
- Status Tracking: Monitor generation progress
-
Add OpenAI API key to environment
OPENAI_API_KEY=your-openai-api-key-here
-
Generate summaries
# Generate for specific sitting python src/manage.py generate_summaries --house dewan-rakyat --date 2024-01-15 # Bulk generation python src/manage.py generate_summaries --house dewan-rakyat --term 15 --limit 50
For detailed documentation, see AI_SUMMARIZATION_README.md.
GET /api/catalogue/- List parliamentary sittingsGET /api/search/- Search speechesGET /api/sitting/- Get specific sitting dataGET /api/attendance/- Attendance statistics
GET /api/summary/- Retrieve existing summaryPOST /api/summary/- Generate new summaryGET /api/summary/status/- Check generation statusPOST /api/summary/bulk/- Bulk summary generation
python src/manage.py test# Format code
black src/
# Sort imports
isort src/
# Lint code
flake8 src/# Create migration
python src/manage.py makemigrations
# Apply migrations
python src/manage.py migrate
# Reset database
python src/manage.py flush# Build image
make build
# Run with Docker Compose
docker-compose up -dRequired environment variables:
DATABASE_URL- PostgreSQL connection stringSECRET_KEY- Django secret keyALLOWED_HOSTS- Comma-separated list of allowed hostsCSRF_TRUSTED_ORIGINS- Comma-separated list of trusted originsOPENAI_API_KEY- OpenAI API key (for AI summarization)
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
MIT License - see LICENSE file for details.
For support and questions, contact: support@mydigital.gov.my