I have a website with a PHP engine that I want to build again with fresh code. I have had many changes from the original version and I do not want to have the patches and changes in my script. I need the following, please do not answer or bid if you do not have or understand the following:
* 5 years expert PHP experience
* 5 years expert MySQL experience
* expert in HTML
* AJAX expert
You may find a demo of the current script here: [url removed, login to view]
This demo is for the company/user side only, there is also a service provider side and will need different levels of login like the company/user side. I need to have a very simple and user friendly registration process that also allows a unique code to register and be assigned to a particular group. The users and service providers may or may not use this code to register. The site will register service providers and place them in a geographic area based on address (zip/postal code). This will allow a search feature to fetch service providers in a give area by zip/postal code for the user. Some special situations for these feature exist and need to be explained in detail, but this is the majority of the need you will see in the demo link.
New version of MaintenanceBrain - Changes Needed
New version of MaintenanceBrain
There are features and benefits noted or listed in the document that need to be created/built in addition to the current code.
MaintenanceBrain is based on Service Providers providing maintenance, service and repair for health clubs and fitness facilities. The New Version of MB can and will be used for multiple business types in addition to health clubs in the future.
MB is an online product that serves as a connection or conduit for services providers that install, maintain and repair products or equipment and Customers that need products or equipment serviced.
Companies like these in the links would be service providers: http://noritsu.com/health-wellness.html , http://oo-thebox.com/fitness.shtml & http://oo-thebox.com/locations.shtml . You can see these service providers have as many as 300 service technicians (service people) to account for.
The important part of the New MB will in the registration process and how the users are assigned and customers are assigned as well. The two types of users are still Service Providers and Customers (Clubs and Club Managers). The New MB will still have different levels of both service providers and customers as it currently does, but we might add one more level.
There are two primary actions that Clubs/Companies use MB for. I say primary because there are several key points/reasons a club/company will use MB. Re:
1. Creating Service Orders - sending a request for service on equipment they have to be repaired/fixed.
2. Preventive Maintenance - clubs/companies will use MB to create preventative maintenance on equipment or other items to prevent failure of the equipment. Club/company users will be notified by email and possibly sms message, on screen message to show preventative maintenance is due (time for action). The reminder will have a PM or Preventative Maintenance authentic code (created by system) and the user may click this number and a new window will open with all details. The parts or items needed for this service will be listed and can be exported via csv file and/or print the list. These items will need to be loaded in the user profile similar to the "add equipment" in user profile. This should be done in something like AJAX so that the user can add new parts or items to each of the PM records. These items should have a name, part number and a value.
New Code to be added to current code logic
Category of Service Providers:
Open Network Category - Service Providers may register as an open network Service Provider. This category will allow the service provider to register, share their services provided by creating a professional profile - this profile will include all standard provider information such as business name, contact name, address, phone, email, phone carrier (in current profile information) for sms, a list of skills/qualifications to select from, and an AJAX feature that allows the Service Provider to add new skills/qualifications by clicking radio button and then filling in the name of the skill/qualification and it is then added to the database and available to anyone else. This Service Provider will not be charged to register. They will need to add a credit card and billing details to receive service orders from customers. The system will work similar to Freelancer, but not having an escrow.
Note: in the admin of the Health Club - the managing level of the club, the user will have the ability to assign one or more Service Providers to specific Club Locations. They should be able to select all with a single click or select specific clubs that are part of their network only. This will allow the Club organization to only let certain clubs see only certain Service Providers. There could be 100 service providers in a certain area, and the club could choose one or more of them.
Closed Network Category - Service Providers may register as a closed network. This category will allow allow Service Providers to register, and assign them to a particular Health Club or Fitness Organization. The Service Provider will only be visible to the assigned Health Club. A Health Club could have more than one location. The Health Club must be charged by location. I should have access in my admin panel and I should be able to change this cost per location in the admin and it should be by location. In admin, I need to click on a list of Clubs and they will be listed by group, when selecting a particular location I have a text box to change the amount $ charged.
Note: I need to support several money types...like the USD Dollar, Canadian Dollar, EURO, Cron, British Pound, etc.
Service providers may be part of a network or they may be single and stand alone service providers. Stand alone means they have their very own business and are not part of a larger business that has several locations with several service people working there. A network could be a group of stand alone service providers that provide either the same services or various and different services and work together to support each other. A network service provider could also be a single company with multiple locations and service people providing services to customers.
Service providers will become registered members of MB. The initial phase of Registration should allow Service Providers to Register with their social network profile to initiate the beginning and then the balance of data needed will be requested from the script once the information has been collected. They will have a profile that allows them to add their company name, personal name, address, phone, etc. and their area of services provided. The area of services provided means what kind of equipment or products do they service. For example, fitness equipment (strength equipment), fitness equipment (cardio equipment like treadmills) or flooring specialty - example: installing flooring, repair flooring, etc. Service Provider, they must have a means of adding qualifications as the current script has to add items with AJAX, so that it updates and saves within the database in real time. Service providers will register with their financial information, they will join a payment provider such as PayPal or another payment gateway. They must qualify for one of these payment gateways and have a verified means of proving they are who they say they are. This will be verified with the registration with the payment gateway.
Note: Initial Registration of Customers
Customers are actually companies that need the services of Service Providers because they have equipment or products that the Service Providers are qualified to maintain, install or repair. Customers may locate the qualified Service Provider by searching within the script. The Customer should be able to search by a common set of qualifications, [I will provide the qualifications to begin with] in the profile of the Service Provider, they must have a means of adding qualifications as the current script has to add items with AJAX, so that it updates and saves within the database in real time.
Service Order Creation
The Service Order Creation process will still operate the same as the script is written now. Meaning, that they service order is completed by filling out the page in that feature of the script, and then the Customer selects the Service Provider in the drop down menu. [the one change, we will need to allow the Customer to assign Service Providers to Customers in the Customer group. Assigning means that the "parent" or primary customer will have the option to select one or more service providers to allow the Customers in the group to see and select a Service Provider to see the assigned Providers and choose them. [in the admin of the Primary Customer (Level 3 or 4, depending on the highest level) they will have the option to assign Service Providers by the Customer or Location of the Customers in their group]
Note: in the current service order creation, when a company/customer selects the equipment number, it should populate the remaining fields. It appears that this feature is working, but we need another method of identifying the equipment to be serviced. Currently, the only method of assigning a Service Order to a piece of equipment is to use the Equipment Number.
[Note: Category is not changing the Type in the Service Order Creation, this should be a defining element of the Service Order Creation]
Create a Maintenance Profile
A complete maintenance schedule for a certain type of equipment that includes not only the preventive maintenance events (created in a calendar for preventative maintenance) and the frequency at which they are performed (selected by drop down lists - days, weeks, months, etc.), by also the materials and replacement parts used and the exact steps needed to complete the maintenance (this will require a feature to create a parts list for preventative maintenance for each piece of equipment) Note: there may be more than one preventative maintenance action/task for a certain piece of equipment. Note: for example; a treadmill may have a regular PM (preventative maintenance) action/task that happens every 90 days that include 3 items/parts, like (1) wax for the deck, (2) wick for the deck, (3) bushings for he rollers...Then there may be an action/task for the treadmill that takes place only every 6 months and it has a list of 5 items/parts for action/task each 6 months.
Maintenance Profiles are created by the customer/club. For example, they may create a simple maintenance profile for treadmill maintenance which includes the following maintenance schedule (this is hypothetical and not necessarily what is required in actual forklift maintenance)
If the club enters a maintenance/service procedure once, they can use that procedure on another piece of equipment or item without having to re -enter it? Of course. Once the maintenance procedure entered a specific maintenance/service procedure, the customer/club can specify the use of that procedure on any other piece of equipment or item by simply clicking on it on a drop down menu.
Customer/club can organize material names/numbers in alpha or numeric sequences? Can organize any table by clicking on the header to organize by that column, giving power to the customer/club to use admin and simply sort the items in a maintenance procedure as noted above.
Each maintenance profile is an entire maintenance schedule for some type of equipment. Maintenance profiles, in addition to specifying the complete maintenance schedule (the maintenance events and the frequency at which they occur), also include the materials, replacement parts, and operations that are required in each maintenance event that is scheduled.
Customers/Clubs should have the ability to create a number of different maintenance profiles, and each one can contain a maintenance schedule for a different type of equipment. This implies that it's very easy to set up maintenance schedules for a large number of equipment, users don't have to enter detailed information for the maintenance schedules for each piece of equipment they are entering; the customer simply choose the appropriate maintenance profile.
Viewing Upcoming and Currently Due Maintenance Events
Viewing what preventive maintenance events are upcoming and currently due, by using three different ways:
By Equipment: user can select a piece of equipment and then see all of the upcoming and overdue maintenance events for that piece of equipment along with their corresponding due dates.
By Date: user can view all of the upcoming and overdue maintenance events along with their corresponding due dates all of your equipment on one screen. The maintenance events are sorted by due date.
By Usage: This view is similar to By Date except that the maintenance events are sorted by the amount of equipment usage (i.e. hours operated) at which they are due.
To view what maintenance events are upcoming and currently due, first click on the Maintenance Due button on the main menu.
If a work order has been created for a given maintenance event (created in a calendar), then the service order number is shown under the Service Order No. column. For each maintenance event listed the user can also see who the maintenance is assigned to, its due date, the amount of usage remaining until it is due (based on last maintenance recorded and next du), the type of the maintenance (i.e. "Daily Maintenance", "Monthly Maintenance"), and the frequency at which it is performed (both by date and usage).
Maintenance events that are due have their due dates shown in red text.
Viewing Service Orders - Similar to this below, giving all information
MB will also have a maintenance calendar that allows the customer/club to see all of the equipment preventive maintenance events that are due on a particular day:
To track what work was actually done and when - Completed preventive maintenance and service activity can either be electronically signed off as completed within the website or app for preventive maintenance software by the person performing the work. Such work orders contain a list of all procedures to be performed and the materials to be used, so once digitally signed a verified record exists that not only the preventive maintenance or service was performed, but the exact procedures followed and the parts and materials used, and all costs.
What happens if a scheduled maintenance or service is missed? MB maintenance software allows a supervisor to note the reason, and to reschedule the work (this must be done by a supervisor so work cannot be missed or rescheduled without management control). Note: this will need to be done in the Buyer or Customer level 3 profile and in the admin area.
When the work is rescheduled and completed, MB software automatically adjusts the calendar by rescheduling the balance of the maintenance . In other words, if a weekly preventive maintenance day is missed by four days, and the work is then done, MB maintenance software reschedules the rest of the maintenance weekly from the day the work was actually done and makes an adjustment.