SBurK is a comprehensive SaaS school bus tracker system for managing the daily school bus operation that links the school, the parents and the buses into one powerful system.
Note: The backend needs a VPS server. It will not work on a shared host.
A new school bus tracker system will be released soon. Be ready !!
Features
SBurK consists of
- Two mobile apps for parents and bus drivers
- Backend system with two admin panels for school admins and for super admin of the system
Demo
- Backend, go to the demo website and log in using
- Super Admin credentials
- Username: [email protected]
- Password: admin
- School Admin credentials
- Username: [email protected]
- Password: 12345678
- Super Admin credentials
- Parent Mobile App, click here
- use (+1) 2345678902 for phone number, or add a new parent with any phone number
- The verification code is 111111. No SMS will be sent in the demo
- Driver Mobile App, click here
- use (+1) 2345678901 for phone number, or add a new driver with any phone number
- The verification code is 111111.
Requirements
Please make sure that you have accounts for
- Google Maps API with the following APIs enabled
- Geocoding API
- Maps JavaScript API
- Places API
- Maps SDK for Android
- Firebase Cloud Messaging
- Stripe
- Twilio
Technologies Used
- Android – parent and driver apps
- Laravel – backend
- VueJS – admin panels
- Firebase Cloud Messaging – notifications for mobile apps
- Socket.io – real-time bus location update for mobile apps and school admin panel
- Chart.js – display charts in admin panels
- Google Maps SDK – display maps in mobile apps and admin panels
- Stripe, Razorpay, Flutterwave – recurrent payment for school accounts
- Twilio, Textlocal, Infobip, Branded SMS – send verification code SMS
Credits and License
All assets in the item are either created by me or are licensed for use in a commercial application with or without author attribution. I provide the necessary attribution in the ‘About’ section in both the mobile apps and the landing web page.
What if I have an issue?
I completely support this item and will reply within 24 hours if you have any issues with SBurK. You can just send a message via my CodeCanyon profile page and I will get back to you right away.
Changelog
Version 3.5 (MAJOR UPDATE) 31 Aug 24
- The backend is fully updated to Laravel 10 with PHP 8.1.
- The dependencies of the Android apps are fully updated to their latest versions.
- Minor bug fixes.
Version 3.4 16 May 24
- Handle the recent change of Firebase SDK. This update upgrades the SDK in the Android apps and performs the required changes.
- Update translated strings to make the apps fully translated.
- Minor bug fixes.
Version 3.3 19 Aug 23
- The backend is fully integrated with Mapbox in addition to Google Maps. Now, you do not need a Google Maps account for both the backend and the apps.
- Translated strings replace all hardcoded English words in the apps. Now, the apps are fully translated.
- Fix some screens in the apps that were not prepared for RTL.
- Minor bug fixes.
Version 3.2 17 May 23
- Please check a demo video for the update here
- Set the driver app’s routing navigation to on or off from the settings screen of the super admin in the backend.
- In the settings screen in the driver app, a new screen is added to set the allowance of the app to access the location in the background on or off. This new screen is in accordance with Google’s new policy for accessing the location in the background.
- In the driver app, the driver can set the order for pickup locations to be manual or auto. If manual mode is selected, the driver can reorder the parents by a new drag-and-drop screen from the settings screen. If the auto mode is selected, the app finds the best route. Please note that this option is available only when the app uses Google Maps, not Mapbox.
- The notifications are fixed to work with Android 13.
- A new screen is added to allow parents to interactively set the pickup/drop-off location on the Google map screen. The parent can either select the location on the map or enter an address, and the app finds the location of this address as a pickup/drop-off location. Please note that this option is available only when the app uses Google Maps, not Mapbox.
- Minor bug fixes.
Version 3.1 5 November 22
- Please check a demo video for the update here
- Add a routing feature for the driver app. The driver app automatically selects the best path to pass through all pickup points to school in the morning route. In the afternoon, the driver app selects the best path that passes through all drop-off points also and the driver can choose the endpoint for his afternoon trip.
- When the driver app selects a route, the route displayed in all parent apps is assigned to this driver in real-time.
- When a parent marks his children absent, the driver route is automatically changed to remove the parent’s home from the trip.
- When the driver moves along his route, the parts of the way that are visited are automatically disappeared from the map in both the drive and parent apps in real-time.
- The driver can check in or out directly from his map screen by just tabbing on the parent home icon on the map.
- In the backend, a new menu is added to the driver’s screen in the school admin panel. The menu is used to display all parents that are assigned to a driver with one click on this menu. This helps the school admin to easily re-assign parents to another driver.
- Minor bug fixes.
Version 3.0 10 May 22
- New addition to the plans. The school now can design its own custom plan with the desired number of drivers and number of seats (children) in the custom plan. The price of a driver and a seat is determined by the super admin. Note that, the custom plan created by a school is available only to this school only.
- If the school designs and subscribes to a custom plan, then the school can add drivers or seats to the plan at any time. The school is charged in this case with the added number of drivers and seats only. Adding more seats will not extend the renewal date of the original custom plan.
- Unfortunately, recently Google increase the price for using the maps on the apps. Since our system has heavy map usage for the apps only, this update integrates Mapbox for the apps, which is much cheaper. The Mapbox maps are available beside the Google maps. The super admin can control which type of maps will be used in the apps from the super admin panel.
- The map in the driver app is always directed to the current bearing of the driver, as in popular navigation apps such as the google maps app.
- To avoid spam while registering for a new school, this update adds reCAPTCHA to the school registration page.
- The school telephone number is added to the school info that is required for registration. This will make it easier for super admin to contact schools with their telephone number
- Minor bug fixes.
Version 2.9 24 Apr 22
- New business model for the SaaS system. The plan now has two constraints which are the number of seats (children) allowed in the plan in addition to the number of drivers (buses).
- The super admin can manually charge the wallets of parents of any school under the condition that the school plan is a pay-as-you-go plan. The manual charging process can be done for individual parents or for a bulk selection of parents.
- Add a new entry in the dashboard of super admin to manage the Apple in-app-purchase system that is used for charging the wallets of the parents from the iOS parent app.
- Minor bug fixes.
Version 2.8 6 Apr 22
- On April 1st, Google changed its privacy policy of accessing the sensitive APIs. This update makes the driver app comply with Google’s new privacy policy because the driver app collects the location in the background even when the app is closed. You can check the demo on the youtube video here https://youtu.be/0SJPqdaCBRc. Also, you can use this video when uploading to Google play (as now Google asks for a demo video).
- Minor bug fixes.
Version 2.7 16 Mar 22
- Add Google maps navigation option in the driver app for real-time traffic updates.
- Make the backend more user-friendly by adding (add/delete/edit) at the bottom of the driver and parent pages to avoid scrolling up to save.
- Add toggle button to show/hide password in the backend.
- Minor bug fixes.
Version 2.6 (MAJOR UPDATE) 14 Feb 22
- Firebase OTP for authenticating drivers and parents. Note that, the check against the driver or the parent existence in the system is done with both Laravel and Google OAuth for best security practice.
- When a driver checks in/out a student, the respective icon status change color so that it can be easy for the driver to click the right icon.
- The translation for both apps is revisited as some screens were not translated before such as child log and driver log screen. Now all translated
- Admob integration to both apps. The Ads visibility is controlled from the settings in the super admin panel, i.e., the super admin can disable the Ads from the apps from his panel.
- Toggle satellite view and normal map view in both parent and driver apps.
- Send notifications via SMS along with phone notifications. This option can be switched on or off from the super admin panel.
- Now the system has a pay-as-you-go plan. By using this plan, the schools are not charged to use the system but parents do. The parents will pay to use the system and the cost will be determined by the number of children the parent has. The pay-as-you-go plan is fully configured by the super admin.
- The parents now have a wallet system. Every parent can charge his wallet to pay for using the system. The wallet balance will be deducted when the pay-as-you-go plan is renewed.
- Paytabs payment gateway is integrated with the system to cover the payments in Middle East countries.
Version 2.5 2 November 21
- Configure the privacy policy and terms & conditions from the settings and display them in the landing page.
- Minor bug fixes
Version 2.4 24 March 21
- Handle sending the location in the background for the driver app for newer versions of Android (beyond Android 8 ).
- Minor bug fixes
Version 2.3 22 December 20
- The school admin can upload parents along with children data with Excel file.
- Minor bug fixes
Version 2.2 21 October 20
- Flutterwave payment gateway is added to the system.
- The super admin can change the following from his admin panel:
- System name
- Company title
- Company website
- Company email
- Company telephone
- Facebook link
- Twitter link
- Instagram link
- Linkedin link
- The super admin can change the billing cycle to be monthly or yearly.
- The super admin can change the currency to whatever he wants.
- The system now can work with four SMS gateways, which are
- Twilio
- Textlocal
- Infobip
- Branded SMS
The super admin can change the SMS gateway from the admin panel.
- Minor bug fixes.
Version 2.1 17 July 20
- The driver app now can send its location when the app in background.
- Minor bug fixes.
Version 2.0 3/6/20
- In the school admin panel, an option added for displaying the children’s check-in and check-out logs in the driver history page.
- Minor bug fixes.
Version 1.9 6/5/20
- In the driver app, a search functionality is added in the child list so the driver can access a specific child quickly.
- In the school admin panel, an option added for the filter in the parent page to search with driver names along with parent names. This makes re-assigning parents to another driver is pretty easy and fast.
- Minor bug fixes.
Version 1.8 3/4/20
- School admin now can add children for each parent from the school admin panel in the backend.
- The parent now can mark any child as absent or not from the settings page in the parent app. This setting is per child.
- The driver can see all children in a list, sectioned by parents’ names, and in this list, any absent child is marked.
- The driver can check-in or check-out a child from the driver app. After check-in or check-out any child, a notification is sent to his parent.
Version 1.7 5/2/20
- New interface to manage buses is added.
- Minor bug fixes.
Version 1.6 28/1/20
- Android apps now support RTL.
Version 1.5 21/1/20
- Razorpay payment gateway is integrated to the system.
Version 1.4 7/1/20
- Speed of the bus driver is obtained directly from the android device instead of being calculated.
- Minor bug fixes.
Version 1.3 10/12/19
- The super admin now can log-in to the school accounts. This is generally to facilitate inquiries from schools about their account (for example, I’m seeing this issue with drivers… I can’t find parents… I’m adding etc etc)
- School admin can send a push notification to broadcast some message to parents, filtered by a bus driver. For example, a school admin can broadcast a message that says “Bus No 9 will be late by 30 minutes.” so parents assigned to the driver of bus 9 get notified about the delay.
- SMS integration now is optional. The super admin can disable/enable verification SMS from settings. A parent or a driver can contact the school admin to get a verification code, which is visible to the school admin via the drivers/parents pages.
- The super admin now can enable automatic Stripe payment or disable the automatic payment at all.
- When the super admin enables automatic payment, the school admins can switch between plans by providing electronic payments.
- When the super admin disables automatic payment, the school admins can not change their plans except to Free plan. If a school admin wants to upgrade his plan, he needs to contact the super admin to switch the plan for him. The super admin can switch the plan of any school account through his admin panel.
The super admin can switch plan for any school account from his admin panel when either Stripe is enabled or disabled.
- Real-time speed is displayed on the bus icon in the parent app.
- Multi-language support is added to the android apps. Included languages are English, Spanish, French, German, Portuguese, Latvian, and Russian. If you need another language, please let me know.
- Share app option is added to the android apps
- Backend updated to Laravel 6
Version 1.2 3/12/19
- School admin can view a log that contains the history of every driver. The log contains, for example, (bus left school at time1, bus arrived at Peter’s home at time2, bus arrived at John’s home at time3, etc.). He can also apply filter by date, place, or specific event type.
- School admin can bulk upload parents’ data to the web panel using a .xlsx template file. An empty template file is included and can be downloaded from the parents’ page.
- School admin can bulk assign parents to a driver, instead of one by one. This is pretty useful when, for any reason, a group of parents needs to change the driver due to sudden circumstances.
- School admin can bulk delete parents, instead of one by one. This is useful when students graduate from school and their parents’ data not needed anymore.
- In the parent Android app, a new view is added to allow parents to view the log of the driver with a history of pick-up and drop-off times.
Version 1.1 20/11/19
- Super admin can add schools from his account.
- School admin can view all buses on the map at the same time.
- Names of the bus drivers are displayed on the map.
- Current speed of bus drivers is displayed on the map in real-time.
- I also added a button (in demo mode only) to synthetically change the bus location of a driver. This is just for easy testing.
Version 1.0 13/11/19 – First Release