About
What are the tasks not attempted or incomplete?
- N/A. All tasks completed.
Which parts did I have trouble with?
- Tables. I had to learn how to implement DataTables and use jQuery to interact with it, but their documentation and forums were sufficient.
What would I like to do better next time?
- Use Axios for making requests within pages instead. This should eliminate the need to reload the page for minor changes.
- Use WebSocket to update table data and badge counters. This should retrieve the rapid changes made to the database by multiple users and admins, without the need to reload.
What extension features/extra challenges have I done, or attempted, when creating the site?
User pages
- [view_events.php] Implemented search function to search for events by any info.
- [view_events.php] Implemented modal instead of JavaScript alert to display the popup messages when registering for events.
- [update_profile.php] Implemented features to Preview and Delete profile photo and resume that are uploaded.
- [update_profile.php] Implemented alerts for when any field is edited, or when profile photo/resume is added/updated/removed.
- [view_advertisements.php] Implemented status and category filter, and search function to retrieve advertisements by any info.
- [view_advertisements.php] Created the page for users to view advertisements.
- [advertisement_apply.php] Created the page for users to apply for their selected advertisement. Fields are auto-filled and validations are implemented.
Admin pages
- [All admin pages] Implemented navigation items in the navigation bar to get to pages easier, and with current page indicator.
- [All admin pages] Implemented breadcrumbs to indicate user's location from their current page.
- [manage_events.php] Implemented DataTables as a more powerful table tool. Features applied includes row display limit, ordering, pagination, fixed headers, expandable rows to display additional info.
- [manage_events.php] Implemented alerts for when an event/news is created/edited/removed.
- [add_event.php] Styled the page to mimic what the created event/news would look like.
- [edit_event.php] Styled the page to mimic what the edited event/news would look like.
- [manage_accounts.php] Implemented DataTables as a more powerful table tool. Features applied includes row display limit, ordering, pagination, fixed headers, expandable rows to display additional info.
- [manage_accounts.php] Implemented badge in the navigation bar's (for all admin pages) to indicate the number of Pending user accounts.
- [manage_accounts.php] Implemented status filter and search function to retrieve users by any info.
- [manage_accounts.php] Implemented alerts for when a user is deleted.
- [manage_advertisements.php] Created 'Manage Advertisements' page to manage all advertisements created in a DataTable.
- [manage_advertisements.php] Implemented the feature and alert for when an advertisement is created/edited/removed.
- [add_advertisement.php] Created the page for admins to create new advertisements.
- [edit_advertisement.php] Created 'Edit Advertisements' page to edit the selected advertisements.
- [maintenance.php] Created 'Maintenance' page to be redirected to when database connection fails, prevents outputting undesirable error messages and better handles user experience.
- [Database: advertisement_table] Advertisement table to store each advertisement's ID, Title, Description, Date added, Button message, Button link, Photo path, category, status, advertiser, and Date to hide (hides the ad after this date).
- [Database: advertisement_registration_table] Advertisement registration table to store each user's data applied to the advertisements linked by the advertisement's ID.
Video presentation link.