Database: MSAccess/MySQL Language: PHP/ASP/ASP.NET(1.1 / 2.0)/??? Operating System: Windows XP + other versions Company: Matt's Cars Project Brief: I am an independent car mechanic specializing in Porsche, running a small business and am starting to find it hard to keep track of my clients using just my mobile and old company records. The pages that are required are: Login Page Clients ‐ Add a Client ‐ Edit a Client's Details ‐ Delete a Client Cars ‐ Add a Car ‐ Edit a Car's Details ‐ Delete a Car Notes ‐ Add a Note ‐ Edit a Note ‐ Delete a Note I also need a search facility to search for clients/cars/notes.
Details:
Login Page:
This page is what is first seen by the user and is what is returned to when the user logs out.
Fields Required:
TextBoxes: User – not case sensitive. Password – case sensitive, no limits as to length, no limits as to what characters are required. Field must be hidden behind stars or equivalent.
Buttons Required:
Login – Logs the user in. Clear – Clears the text boxes. Exit – Exits the program.
Comments:
Required
Menu Page:
This page is the main centre to the system. It has links to every other page. These links can be in any form DropDown Lists / Buttons / Text Links. If I don’t like the way they look, I expect to be able to change them easily. This is also known as Main Menu. There should be a welcome message here for the user, e.g. Hi Matt, Welcome to Matt’s Cars etc.
Clients Page:
Fields Required:
None
Buttons Required:
Add a Client – link to appropriate page Edit a Client – link to appropriate page Delete a Client – link to appropriate page
Comments:
Basically a sub‐menu for the clients page
Add a Client Page:
Fields Required:
TextBoxes: ClientId – Unique Autonumber FirstName – First Name of client LastName – Last Name of client Phone – Phone Number of client Mobile – Mobile Number of client Fax – Fax number of client MemoBoxes: Address – Address of client (memo)
Buttons Required:
Add Customer – Writes the Customer to the Database Clear Details – Clears the Text and Memo Boxes Exit – Clears the Text and Memo Boxes and returns to Main Menu
Comments:
The way to add client details to the system ClientID should be automatic, not enterable by the user
Edit a Client’s Details Page:
Fields Required:
DropDown Lists: Clients – List of clients in the database (First Name + Last Name). Populated when page loads, refreshed when edits are submitted. Populates the other fields. TextBoxes: ClientId – Unique Autonumber – Not Editable FirstName – First Name of client LastName – Last Name of client Phone – Phone Number of client Mobile – Mobile Number of client Fax – Fax number of client MemoBoxes: Address – Address of client (memo)
Buttons Required:
Submit Edits – Changes the data in the database, Clears all text boxes, Refreshes Drop Down List – Confirmation Required Required Clear Edits – Clears Text Boxes and Refreshes DropDown List – confirmation
Exit – Clears Text Boxes, refreshes DropDown List and Returns to Main Menu
Comments:
Method to edit client details.
Delete a Client Page:
Fields Required:
DropDown Lists: Clients – List of clients in the database (First Name + Last Name). Populated when page loads, refreshed when a delete is submitted. Populates the other fields. TextBoxes: ClientId – Unique Autonumber – Not Editable FirstName – First Name of client LastName – Last Name of client Phone – Phone Number of client Mobile – Mobile Number of client Fax – Fax number of client MemoBoxes: Address – Address of client (memo)
Buttons Required:
Delete – Removes record from the database, Clears all text boxes, Refreshes Drop Down List – Confirmation Required Exit – Clears Text Boxes, refreshes DropDown List and Returns to Main Menu
Comments:
Method to delete client details.
Cars Page:
Fields Required:
None
Buttons Required:
Add a Car – link to appropriate page Edit a Car – link to appropriate page Delete a Car – link to appropriate page
Comments:
Basically a sub‐menu for the cars page
Add a Car Page:
Fields Required:
DropDown Lists: Client – List populated from client table (FirstName + Last Name). TextBoxes: CarID ‐ Unique Autonumber Registration – Number Plate of the car. UK Format, therefore no actual format possible. So no mask required Make – Make of the car Model – Model of the car Colour – Colour of the car
Buttons Required:
Porsche – Along side the Make Text Box so that when clicked, automatically puts “Porsche” in the Make Text Box Add Client – Links to the Add client page (popup??) Add Car – Writes the Car to the Database
Clear – Clears the Text Boxes and resets the client dropdown list Exit – Clears the Text Boxes and returns to Main Menu
Comments:
The way to add car details to the system CarID should be automatic, not enterable by the user
Edit a Car’s Details Page:
Fields Required:
DropDown Lists: Clients – List of clients in the database (First Name + Last Name). Populated when page loads, refreshed when edits are submitted. Populates the other dropdown list with the registrations of cars that belong to the selected client Cars – list of cars in the database (Registration + ‘ – ‘ + Make + ‘ ‘ + Model). Initial state, has all registrations shown, as client box changes, only shows those cars. When page is refreshed, box drop down lists refreshed, therefore this then shows all cars again. TextBoxes: CarID ‐ Unique Autonumber Registration – Number Plate of the car. UK Format, therefore no actual format possible. So no mask required Make – Make of the car Model – Model of the car Colour – Colour of the car *
Buttons Required:
Submit Edits – Changes the data in the database, Clears all text boxes, Refreshes Drop Down Lists – Confirmation Required Required Clear Edits – Clears Text Boxes and Refreshes DropDown Lists – confirmation
Exit – Clears Text Boxes, refreshes DropDown Lists and Returns to Main Menu
Comments:
* ‐ Another DropDown List is required with client details, so that the client who owns the car can be changed in the database system Method to edit car details.
Delete a Car Page:
Fields Required:
DropDown Lists: Clients – List of clients in the database (First Name + Last Name). Populated when page loads, refreshed when edits are submitted. Populates the other dropdown list with the registrations of cars that belong to the selected client Cars – list of cars in the database (Registration + ‘ – ‘ + Make + ‘ ‘ + Model). Initial state, has all registrations shown, as client box changes, only shows those cars. When page is refreshed, box drop down lists refreshed, therefore this then shows all cars again. TextBoxes: CarID ‐ Unique Autonumber Registration – Number Plate of the car. UK Format, therefore no actual format possible. So no mask required Make – Make of the car Model – Model of the car Colour – Colour of the car
Buttons Required:
Delete – Removes record from the database, Clears all text boxes, Refreshes Drop Down Lists – Confirmation Required Exit – Clears Text Boxes, refreshes DropDown Lists and Returns to Main Menu
Comments:
Method to delete car details.
Notes Page:
Fields Required:
None
Buttons Required:
Add a Note – link to appropriate page Edit a Note – link to appropriate page Delete a Note – link to appropriate page
Comments:
Basically a sub‐menu for the Notes page
Add a Note Page:
Fields Required:
DropDown Lists: Clients – List of clients in the database (First Name + Last Name). Populated when page loads, refreshed when edits are submitted. Populates the other dropdown list with the registrations of cars that belong to the selected client Car – list of cars in the database (Registration + ‘ – ‘ + Make + ‘ ‘ + Model). Initial state, has all registrations shown, as client box changes, only shows those cars. When page is refreshed, box drop down lists refreshed, therefore this then shows all cars again. Client – List populated from client table (FirstName + Last Name). TextBox: Date – Date that the note is added Time – Time that the note is added (these two can be combined) User – The name of the person who logged the note, e.g. Matt Summary – A brief summary about the note MemoBoxes: Note – The information – can be long notes, so must not be limited e.g. an MS Access Memo field?? Also no restrictions on symbols being used. Format should be kept.
Buttons Required:
Add Note – Links to the Add client page (popup??) Clear – Clears the Text Boxes, memo boxes and resets the dropdown lists Exit – Clears the Text Boxes, memo boxes, resets the dropdown lists and returns to
Main Menu
Comments:
The way to add notes about cars to the system. As based on the car, the Unique Car number should be used as the reference in the notes table.
Edit a Note Page:
Fields Required:
DropDown Lists: Clients – List of clients in the database (First Name + Last Name). Populated when page loads, refreshed when edits are submitted. Populates the other dropdown list with the registrations of cars that belong to the selected client Registration – list of cars in the database (Registration + ‘ – ‘ + Make + ‘ ‘ + Model). Initial state, has all registrations shown, as client box changes, only shows those cars. When page is refreshed, box drop down lists refreshed, therefore this then shows all cars again. Summary – list of notes (by summary) that are in the system for the selected car. Initial state is empty and disabled, until the user selects the car. TextBox: Date – Date that the note is added Time – Time that the note is added (these two can be combined) User – The name of the person who logged the note, e.g. Matt Summary – A brief summary about the note MemoBoxes: Note – The information – can be long notes, so must not be limited e.g. an MS Access Memo field?? Also no restrictions on symbols being used. Format should be kept.
Buttons Required:
Submit Edits – Changes the data in the database, Clears all text boxes, Refreshes Drop Down Lists – Confirmation Required Required Clear Edits – Clears Text Boxes and Refreshes DropDown Lists – confirmation
Exit – Clears Text Boxes, refreshes DropDown Lists and Returns to Main Menu
Comments:
Method to edit notes about cars.
Delete a Note Page:
Fields Required:
DropDown Lists: Clients – List of clients in the database (First Name + Last Name). Populated when page loads, refreshed when edits are submitted. Populates the other dropdown list with the registrations of cars that belong to the selected client Registration – list of cars in the database. Initial state, has all registrations shown, as client box changes, only shows those cars. When page is refreshed, box drop down lists refreshed, therefore this then shows all cars again. Summary – list of notes (by summary) that are in the system for the selected car. Initial state is empty and disabled, until the user selects the car. TextBox: Date – Date that the note is added Time – Time that the note is added (these two can be combined) User – The name of the person who logged the note, e.g. Matt Summary – A brief summary about the note MemoBoxes: Note – The information – can be long notes, so must not be limited e.g. an MS Access Memo field?? Also no restrictions on symbols being used. Format should be kept.
Buttons Required:
Delete – Removes record from the database, Clears all text boxes, Refreshes Drop Down Lists – Confirmation Required Exit – Clears Text Boxes, refreshes DropDown Lists and Returns to Main Menu
Comments:
Method to delete notes.
Extended Details
When a record is “deleted” from the database, the record actually does not get deleted. In each table, there needs to be a checkbox that when ticked, the record is effectively deleted. Please let me know if you need further clarification on what I mean by this.
Ideas
An ASP.NET (2.0 VB) front end with an MS Access database backend?? An ASP.NET (1.1 VB) front end with an MS Access database backend?? A PHP front end with a MySQL database backend?? – preferred languages. I don’t know too much about search algorithms and all that, but it would be great to have a google style search box. Under the box, you could have 4 radio buttons; Search Cars, Search Clients, Search Notes, Search All and then the search button? Potential Problem: What happens when you delete a car which has a note attached to it, or a client with a car or two etc? Potential Solution: You must still be able to delete the item trying to be deleted, but in the confirmation, maybe say, for example, “There are 4 notes attached to this car. Do you want to delete them as well?” Buttons: Yes, No, Cancel. Open to other suggested solutions.
Requirements
IMPORTANT: All code MUST be fully documented. This includes comments in the code. This is extremely important. I also require the full code listing. I will provide web hosting for you to upload into for use as your testing server. A working manual is also required, which must include screenshots of every screen as you go through. You must be prepared to support errors in the code for 6 months (this does not include changes in specification though). IMPORTANT: There needs to be a table in the database called “ImportantInfo” (or similar) where data is stored such as Company Name and all text greetings. E.g. on the main menu page, it is to say Hello xxx. Welcome to the Matt’s Cars Client Database. I would expect 2 fields for this. Field 1 would
contain, “Hello “. Field 2 would contain, “. Welcome to the Matt’s Car Client Database”. This needs to be done for all little bits of info. There only really needs to be one record, with many different fields for this. Any questions about anything with this, please let me know.