- This project is a requirement for two courses within my BS in Computer Science program.
- The Mabolo Dormitory Management System is designed to streamline dormitory activities, including room allocation, dormer information management, payments, and other related events.
- It offers a systemized and secured approach to data storage, enhancing the overall efficiency of dormitory management.
- This system is tailored specifically for admin users, which may include the Dorm Adviser, or Assistant Dorm Adviser.
- Features of the System
- Database Model
- Events Documentation
- Presentation
- System Design
- How to Use the App?
- How to Open Using Visual Studio?
- License Information
- Contributing
- Demo
- Contact Information
- Acknowledgements
- Developer Credits
- This page manages the login feature of the system. It serves as the initial interface upon opening the application.
- The Dashboard provides an overview of the current dormitory status, displaying a summary of significant information necessary for efficient management, including dorm user count, room count, payment collectibles, and events.
- Additionally, this page showcases dormitory and developer information.
- The Dormers page presents the current list of dormitory occupants, offering filtering options by user type, search functionality, and pagination for display management.
- Admin users can also utilize this page to add new dormers to the system.
- This page displays the different users per room. The admin can allocate dormers to a room or move a dormer to a new room.
- The Events page showcases the events in the dormitory. Here, the admin can add new events, update existing ones, and delete events.
- This page also manages attendance for every event.
- The Payments page displays the payables of every dormer, including their remaining balance. The admin can view payments and add payment transactions for each dormer.
- Regular payables and payment summaries can be viewed on this page.
- The Settings page allows the admin to modify their account and password. It also supports changing profile pictures and relevant admin information.
- This use case diagram represent the dormitory management system.
- This ERD presents a model tailored for a dormitory management system which I used to offer a comprehensive view of its entities and relationships. Below is a breakdown of the entities and their attributes:
- Represents individuals interacting with the system.
- Attributes include
UserId
(primary key),FirstName
,LastName
,Email
,PhoneNumber
,Department
,UserType
, andUserStatus
.
- Stores department information for residents.
- Attributes consist of
DepartmentId
(primary key) andDepartmentName
.
- Represents rooms within the dormitory.
- Attributes include
RoomId
(primary key),LevelNumber
,MaximumCapacity
, andCurrNumOccupants
.
- Tracks financial transactions made within the system.
- Attributes comprise
PaymentId
(primary key),Amount
,PaymentDate
,PaymentType
,Status
, and a foreign key referencingUserId
.
- Represents ongoing or recurring fees.
- Attributes include
RegularPayableId
(primary key),Name
, andAmount
.
- Represents events taking place in the dormitory.
- Attributes consist of
EventId
(primary key),EventName
,EventDate
,EventType
, andLocation
.
- Links users to rooms, indicating room assignments.
- Attributes include
RoomAllocationId
(primary key),StartDate
,EndDate
, and foreign keys referencingRoomId
andUserId
.
- Tracks attendance for events.
- Attributes comprise
EventAttendanceId
(primary key) andAttendanceStatus
, with foreign keys referencingEventId
andUserId
.
- Links users to specific outstanding payments.
- Attributes include
UserPayableId
(primary key), with foreign keys referencingUserId
andRegularPayableId
.
- A User can be assigned to a single Department.
- A Room can have many Room Allocation records, representing residents assigned over time.
- A Room Allocation record belongs to one Room and one User.
- A User can make many Payment records, with each Payment record associated with one User.
- An Event can have many Event Attendance records, indicating residents who attended.
- An Event Attendance record belongs to one Event and one User.
- A User can attend many Events through Event Attendance records.
- A User might have many User Payable records, representing outstanding payments for recurring fees.
- A User Payable record belongs to one User.
- This the first page of the events documentation embedded on this repository. To view the complete copy of the documentation, the PDF copy can be accessed in this link.
- The presentation of this project can be viewed here.
- These were the classes used on developing this app. I have create a class named
DatabaseManager
that will execute all the queries from my GUI forms, for better effeciency and easy debugging. All the classes, excpeted theDatabaseManager
has a corresponding test classes which were used for unit testing of the classes.
- You should have a MySql community server. If you don't have it, you can download it from the official website. Follow the setup process and install it.
- Visit this link to download the latest release version of this app. Click the latest
.msi
file to download it.
- Navigate to the
Resources
folder in this repository and download the SQL fileSystemDatabase
.
- Open the MySql Workbench application. Click the plus icon next to the application's text logo.
- Enter the connection name and note the
hostname
andusername
.
-
Click the database you created. Go to the
server
section, clickData Import
, selectImport from Self-Contained file
, then choose the directory where the downloadedSystemDatabase
is located. Finally, clickStart Import
. -
Congratulations! You have finished setting up MySql! Scroll down for more!
-
In Windows search, look for
environment variables
settings. Insystem variables
, clickadd
. -
Add these three
variable names
individually:MYSQL_PASSWORD
,MYSQL_SERVER
,MYSQL_USERNAME
(follow these names strictly), and set their values to the corresponding values you entered when setting up your database.
-
If you forgot your server and username, you can view them by opening your database in workbench, clicking
server
, and going toManage Access Settings
>Connection
. -
The variable value for
MYSQL_PASSWORD
is the password you entered when you first used MySql. You can view or change it by opening your database in workbench and navigating toserver
>User and Privileges
.
- Run the installation process downloaded from this GitHub link. You can now use the app!
-
Click
code
at the top and selectOpen with Visual Studio
. -
To fully utilize this, download various NutGet extensions, including but not limited to
MySql
,Xunit
, andMySql Connector
. These can be easily downloaded in NutGet Packages. -
For
GunaUI
, DO NOT download it from NutGet package. Manually download thedll
file and add it to the project's references. You can download theGunaUI.dll
from this repository.
This project is licensed under the MIT License, which means you are free to use, modify, and distribute the code as long as you include the original copyright notice and disclaimer. See the LICENSE file for more details.
Thank you for considering contributing to this project! Your contributions are greatly appreciated. Here are some ways you can contribute:
-
Report Bugs: If you encounter any bugs or issues, please open an issue on GitHub.
-
Suggest Features: Have an idea for a new feature? Open an issue and share your thoughts.
-
Submit Pull Requests: Fork the repository, make your changes, and submit a pull request for review.
-
Provide Feedback: Share your thoughts and suggestions in the project's issues section.
-
Spread the Word: Help others discover this project by sharing it on social media or with your peers.
Thank you for your interest and support! 🚀
DEMO.mp4
Here is the demo on how the application funcions. Additionally, screenshots showcasing the user interface and functionality are available in the Screenshots directory.
For any questions, feedback, or support inquiries, feel free to contact me at:
I would like to acknowledge the following individuals for their contributions to this project:
- Sir Jomari Barera and Ma'am Jonah Maaghop for their guidance and tips to become this project sucessfull.
This project is developed and maintained by:
John Rhuel Laurente
BS in Computer Science, 2nd Year
Visayas State University