




Incidema - Perhutani
Overview
Incidema Perhutani is an incident management application for handling incidents within the Perhutani environment. This system consists of three applications: a Web Dashboard for Controllers, a Web Dashboard for Admins, and a Mobile App for Reporters.
The web dashboards function as control centers for managing incidents, creating reporter accounts, and summarizing report traffic. The mobile app is used by field personnel to submit incident reports.
On the backend, the application uses a microservice architecture and REST APIs, making it lightweight and responsive.
Key Features
-
Incident Reporting
- Users in the field can submit incident reports using the mobile app, including details such as location, time, description, and photo attachments. This helps ensure timely and accurate incident tracking.
-
User Management
- Admins can create, update, or deactivate user accounts for field reporters directly through the web dashboard. Role assignments and access controls are also managed to ensure secure access.
-
Real-Time Dashboard
- The controller dashboard provides a live overview of all incoming reports, their current status (open, in progress, resolved), and enables actions like assigning responders or closing incidents.
-
Report Recap & Analytics
- The admin dashboard includes tools to view summarized incident data, generate traffic reports, filter incidents by date/location/type, and export reports for internal use or audit.
-
Role-Based Access
- The system defines clear roles for each type of user (Reporter, Controller, Admin), ensuring each user only accesses features relevant to their responsibility.
-
Microservice Architecture
- The backend is built using microservices, allowing each component (authentication, incident logging, notifications, etc.) to scale independently and be maintained separately for better reliability.
-
Multi-Platform Access
- The system is available through web applications for controllers and admins, and a mobile app for reporters—ensuring accessibility anytime and anywhere.
Backend Technology Stack
- JavaScript
- Microservice Architecture
- ExpressJS
- MongoDB
- MariaDB
- Socket IO
- Apache Kafka
- Redis
- Docker
- Jenkins CI/CD
- Morgan Logger
My Role
As a Backend Developer, I was responsible for developing and improving backend services for the Incidema-Perhutani, including APIs, databases, and system integrations. My key contributions include:
- Developed RESTful APIs: Built and maintained APIs to handle authentication, incident reporting, user management, and analytics.
- Microservices Architecture: Developed scalable and modular services using a microservices approach.
- System Optimization: Refactored code and improved backend performance and scalability.
- Optimized Database Performance: Designed and optimized database schemas for fast querying and reliable data storage.
- Managed User Roles & Permissions: Developed secure role-based access control for different types of users (Reporter, Controller, Admin).
- Event-Driven Architecture: Implemented Apache Kafka as an event handler to enable efficient, real-time communication between microservices, improving scalability and decoupling service dependencies.
- Collaborated in Agile Teams: Worked closely with frontend, mobile, QA, and UI/UX teams using Jira to deliver features on time and improve product quality.
- Cross-Team Collaboration: Worked closely with Mobile, Frontend, QA, and UI/UX teams to ensure smooth integration and delivery.