The client approached us with a requirement of developing a website where users can see the route details between destinations. The idea was to add a form in the website where users will put the start and end destination and the map will show an elaborate route between the places.
The project was interesting as we got to work on Google Map API. To start with, we have added search functionality on the top of the website, where users can search for an initial location. For example, they can search for a specific location in any particular country there. There is a another form integrated where there are four fields sited as "A", "B", "C" and "D". Users can put four different locations in these fields and as they click on "Get Route" button, the Google Map will highlight the route between the destinations. By default there are four fields given on the screen, but users can add more locations by using the "Add More" button.
Additionally, we have facilitated the users to know various other details about the destinations including total distance covered as well as the distance between places. Users can add or remove points between the initial and final points. When the segments are revised and the "Get route" button is clicked on the map, it will generate a fresh route with the existing locations and also re-calculate the distances for the segments to be traveled. This is more or less how the website works. Now coming to other details - there are three types of users who can use this website: Free Users, Subscribed Users and Advertisers.
Free Users: - Free users would be able to operate the basic function & interface of the website. They can add up to 10 search fields and can search routes for 10 destinations at a time. They would also be able to "Add Destinations" to prompt the commercial/subscribed area - Apart from searching and viewing routes with corresponding maps, free users are also facilitated to view route specific advertisements.
Subscribed Users: - Subscribed users need to register themselves with the website first. They can enjoy a monthly recurring subscription/membership and for that they can make online payments. Based on the level of subscription; subscribed users are allocated with a specified number of destinations, total routes that they can check in their subscription period. They can view the estimated reaching time for each destination. They are also able to view total route time on the final route page. Subscribed users are also be enabled to view the gas price data so they can identify the cheapest fuel location in the route. They can have multi-tiered accounts with "Gold" subscription which would allow them to purchase user accounts, manage accounts, monitor/review the routing destinations, assign users by creating a subsequent route, print etc. "Special delivery instruction" is also an additional feature available for the subscribed users which allows & provides specific instructions for drivers about the routes and destinations, they wish to visit. No advertisements for subscribed users. They need to store the history of inputs of the subscribed users in the database - They can also be able to view the transaction history
Advertisers: - Advertisers need to register themselves with the website and create an account. They need to buy monthly recurring subscription/membership. Payment can be made online. Advertisers would be able to create/manage advertisements between the routes, with a limited number of banners on the zone
Admin Panel: - The super admin of the website has been facilitated to manage other users including the free, subscribed as well as the advertisers - Admin would be able to set & manage subscription levels/types. Admin can view transaction history. Admin can create/define the zones on the pages and also set the total number of banners, which can be displayed on the front end - Admin can keep a track of the total revenue that will come from the subscribed users and advertisers between dates. Admin can suspend any subscribed or advertisers' account whenever needed.
PHP, Design HTML & CSS