mafwr-dashboard / README.md
mafwr-dashboard
mafwr-dashboard
Dashboard portal for the Ministry of Agriculture, Fisheries, and Water Resources.
Displays interactive Power BI dashboards and provides secure user-based access management.
Overview
This web application embeds various Power BI dashboards relevant to the ministry. Each dashboard is available in four versions:
- English (Public / Private)
- Arabic (Public / Private)
Secure access is handled via NTLM authentication, integrated with Microsoft SSRS. The backend ensures users only see dashboards they are authorized to view, based on permissions assigned by an admin.
Design
Features
Dashboards
- Embedded Power BI dashboards via Microsoft SSRS.
- NTLM authentication for private dashboards.
- Public dashboards available without login.
Admin Panel
- User management and role assignment.
- Dashboard permission control.
- Upload and manage public PDF documents.
Roles
- Public User: Can access public dashboards and documents without login.
- Private User: Requires authentication; can access assigned dashboards and private documents.
- Admin: Full access to all dashboards, user management, and document uploads.
Getting Started
Prerequisites
- Docker and Docker Compose
- Git
Running Development Environment
Install node modules under web:
cd web && npm install
From Repo Root:
docker compose up -d
To view any logs for debugging:
docker compose logs {service} -f
Users
Following default users for testing:
| Username | Password | Role |
|---|---|---|
| admin | admin | Admin |
| member | member | Member |
Authentication
When logging in:
- Enter username and password
- An OTP will be sent to the user email
- Access the mail server at http://localhost:8025 to retrieve the OTP
- Enter the OTP to complete your login
Accessing the Application
The application is available at http://localhost:3000 after startup.
Please note clicking on cards shows a black iframe because PowerBI is only connected in production, not in dev mode.
Contributing
-
Issue
- Check existing issues first or create a new one
- Assign yourself to the issue
-
Create a branch
- Follow project coding standards
- Include appropriate documentation
-
Submit a PR
- Reference the issue
- Address team feedback if needed
- Approved PRs are squash-merged to main
Additional Support
Please also refer to the README in the docs folder.
For any additional information, please contact the team.