A mobile application automating GCTA monitoring for PDLs, ensuring accuracy and transparency while eliminating paperwork.
This freelance project, developed as a project thesis for college students, focuses on creating a mobile application designed to automate the monitoring of GCTA (Good Conduct Time Allowance) for Persons Deprived of Liberty (PDLs). The mobile app ensures that GCTA allocation is accurate, while also generating approval reports and storing data in a digital format, effectively replacing traditional paper-based record keeping. By streamlining the process, the system promotes transparency, reduces the risk of human error, and helps to prevent misconduct. Completed within a 1-month timeframe, the mobile application will be implemented by the BJMP, replacing their previous system that relied heavily on Microsoft Excel.
A mobile application for BJMP automating GCTA monitoring for PDLs, ensuring accurate data tracking, transparency, and replacing manual Excel-based processes.
Dashboard — Provides an overview of key metrics, including total registered PDLs, system users, branches, and crimes. It features charts for the top GCTA, TASTM, and STAL earners, a donut chart for common penalties, and a summary of the top 10 crimes committed.
Time Allowance Database — Allows editing of a PDL's profile, including the option to upload their picture.
Monitoring — Tracks and oversees GCTA progress and updates.
Monthly Report — Generates monthly reports summarizing GCTA data.
Annual Report — Generates comprehensive annual reports on GCTA statistics.
Administration — Users can add, edit, or delete branches and manage the list of crimes. It includes user management, allowing users to be added, edited, or deleted, with customizable roles to restrict access to specific menus or functions (e.g., adding, deleting, or editing PDL profiles or generating PDFs). The system also features activity logs to track user actions.
Profile — Users can edit their personal information and change passwords. Initially, the system included two-factor authentication via SMS OTP using the Globe API, but this was removed on August 31, 2022, due to the end of life for the Globe API as it transitioned to the m360 platform.
This project is built using reliable tools, ensuring smooth maintenance and an efficient, enjoyable development experience.
React Native v0.66.4 — Used for building the mobile application, allowing the creation of cross-platform apps with a native look and feel, while enabling code reuse between iOS and Android. It provides a seamless development experience with faster iteration and real-time updates.
JavaScript — Used as the main scripting language, facilitating dynamic client-side functionality and interactions.
Native Base v3.3.0 — Used to create a consistent and accessible user interface, offering a rich collection of pre-built components that enhance the development of responsive and visually appealing mobile applications.
Node.js — Utilized for server-side development, Node.js handles backend operations efficiently, enabling real-time functionality and seamless communication between the server and client.
Express.js — Used as a lightweight framework to streamline server-side development, simplifying the creation of APIs and handling of HTTP requests, while maintaining flexibility and performance.
Globe Labs API — Was initially used for implementing two-factor authentication via SMS OTP. However, it was discontinued after August 31, 2022, when Globe transitioned the service to the m360 platform, marking the end of life for the Globe Labs SMS API.
MongoDB — Employed as the database solution, offering a flexible, document-oriented structure that simplifies data storage and retrieval, ensuring scalability and efficient handling of large datasets.
Git — Utilized for version control, enabling efficient tracking of code changes, collaboration across teams, and seamless management of project history and updates.
Genymotion — Used as the Android emulator for testing and debugging the mobile application, providing a reliable virtual environment to simulate different devices and configurations for a smoother development process.
Vercel Blob — Used to store PDL images, providing efficient and scalable image management integrated with the Vercel platform.
Railway — Used for hosting my Node.js API, providing seamless deployment, automatic scaling, and easy integration with databases and other services.
Heroku — Was my former hosting platform for my Node.js API, providing easy deployment, scaling, and management of backend services.
DigitalOcean Spaces — Was my previous platform for storing images, offering scalable and secure object storage.