Resource Hub is a full-stack web application for managing meals, assets, maintenance, and organizational resources. It offers distinct functionalities and dashboards for Administrators and Users, powered by a Ballerina backend and a modern React frontend.
/Resource-Hub
βββ Front-End/ # React frontend app
βββ Back-End/ # Ballerina backend API
- JWT-based login system
- Role-based access control (Admin & User)
- Users can request meals via a calendar UI
- Admins manage meal types and times
- Users submit maintenance requests
- Admins prioritize and track maintenance tasks
- Asset request and tracking by users
- Admins manage inventory and handovers
- Admin-side user role control
- Profile editing and preferences
- Summary statistics for users and admins
- SMTP-based notifications for events and reminders
- API hooks for PDF report generation
- Admins can generate and download summaries
- Light/Dark mode toggle
- Responsive sidebar and layout
- Language: Ballerina
- Runtime: Ballerina HTTP module
- Database: MySQL
- Email: SMTP
- Docs: OpenAPI (if enabled)
- Framework: React (TypeScript)
- UI: Material UI (MUI), Tailwind CSS
- State Management: React Query, Axios
- Routing: React Router
- PDF & Charts: html2pdf.js, Chart.js, Recharts
- Build Tool: Vite
git clone https://github.com/FiveStackDev/ResourceHub.git
Download from https://ballerina.io/downloads/
[ResourceHub.services]
USER = "your_db_user"
PASSWORD = "your_db_password"
HOST = "localhost"
PORT = "3306"
DATABASE = "your_database_name"
SMTP_HOST = "your_smtp_host"
SMTP_PORT = "587"
SMTP_USER = "your_smtp_user"
SMTP_PASSWORD = "your_smtp_pass"
PDFSHIFT_API_KEY = "your_pdfshift_api_key"
In Ballerina.toml
:
[[platform.java11.dependency]]
groupId = "mysql"
artifactId = "mysql-connector-java"
version = "8.0.26"
A detailed SQL schema is provided in the backend/README.md
, including:
users
,mealtimes
,mealtypes
,requestedmeals
assets
,requestedassets
,maintenance
,notification
π ER Diagram:
This project is licensed under the MIT License. See LICENSE for details.