The application includes a full authentication system with role-based access control. Administrators can manage the entire system, staff members can record donations and generate invoices, and donors can log in to view their own donation history.
Other features include donor and donation management, invoice generation, signature management, and structured relationships between all core entities such as users, donors, and donations.
One of the main challenges was designing a system with many relationships between database tables while keeping queries efficient and the application responsive.
Another major challenge was rebuilding the system while preserving a section inside the new app where old data could still be accessed.
I built the application using Laravel 5.5 and MySQL, focusing on clear data models and well-defined relationships between entities such as donors, users, and donations.
To handle the legacy data, I wrote custom scripts to import and transform old records so they matched the new data models. I also reserved a dedicated section inside the application for accessing legacy data when needed.
Throughout development, I focused on reliability and ease of use, since staff members would rely on the system every day to manage real donations.
The application has been running in production since 2021 and is still used daily by staff members without major issues.
This project taught me how to work under tight deadlines, adapt quickly to a new technology stack, and deliver a system that handles real data and real users.
It also taught me how to maintain long-term software, migrate legacy data, and build applications where reliability matters more than how things look.