Submit Your Question

Answering to All Assessments Questions

High Quality, Fast Delivery, Plagiarism Free - Just in 3 Steps

Submit Your Question Here


Multiple Attach File
Professional Assignment Help Services

Databases / Web Development / GUI Programming Assignment Question

Databases / Web Development / GUI Programming

Assignment Introduction

A lot of the times when visiting a barber or hairdresser you have to wait in a queue not knowing when your turn is. To avoid this waiting problem, we are going to develop an automated booking platform for client and barber/hairdresser as there is currently no system to solve this issue.

Design and implement a multiplatform application that allows barbers to register their business details, their location, and their available slots so that customers can log in to search and book appointments.

Module Learning Outcomes assessed.

GUI Programming

  • Write computer programs with Graphical User Interfaces.
  • MLO3 Develop event-driven, reactive GUIs.
  • Incorporate best practices in user design and usability.
  • Integrate non-GUI Object Oriented code with a user interface.

Web Development

  • Overcome the limitations of static websites with dynamic web solutions.
  • Assess the needs of a website and design a solution that makes use of server-side technologies.
  • Address the data storage needs of a website and implement robust data storage solutions.
  • Critique the security measures currently implemented by a website and identify security measures that could be implemented.
  • Implement multi-tiered website architectures.
  • Identify where user authentication can benefit the user experience and design a robust authentication procedure.

Databases

  • MLO2 Demonstrate an understanding of the desirable features of a database management system and how they are achieved.
  • Design and construct a database for a real-world situation.
  • Manipulate the data in a relational database using DDL and DML aspects of SQL.

General System Requirements

The system will have a backend database (DB) that will engine two independent front-end platforms, a web-based application (WebDev) and a desktop application with GUI implementation (GUI). You are required to design and implement the whole system, including the database and both of the platforms that will manipulate the data in it.

As a number of different people will use the system, different user account types must be created. Depending on the account type, different options in the system will be available to them. The three types of customers will be:

Customer

Customers should be able to register themselves with their full name, mobile number, email address, and password. After successful registration, a customer should be able to log into the system and search for a barber shop; this could be filtering by name and/or location of the barber. Also, customers would book themselves for an appointment, once they have selected a suitable barber.

Service Provider (Barber/Hairdresser)

Service providers should register themselves by giving their full name, location, mobile number, and password. After successful registration, the service provider is able to log into the system, and they can enter their free available slots, which will be updated and available for the customer to see. Also, there should be an option to confirm the booking that the customer has made.

Admin

The system administrator does not have to register itself and should be pre-registered through the backend database. Once logged in, the administrator will be redirected to the administration panel where he/she can view all the current bookings made by the customers. When the barber registers themselves, their verification will be on “Pending” until the administrator approves them, subject to verification that the barber appears to be a genuine service provider. The administrator should also be able to cancel an appointment, delete any account (barbers and customers), and handle complaints from the customers regarding any services given by the barber/hairdresser.

System Requirements

  • There should be a unique login section for customers, barbers/hairdressers, an administrator to access the system. When a user opens the website or desktop application, they should be greeted with two main options:
    • Register on the system for a new account
    • Log in to the system with an existing account
  • All users should be validated against data stored in the database. Customers, service providers, and administrator should be then directed to their appropriate home page if the login is successful.
  • Storing passwords in plain text is a security issue that should be avoided. When customers and barbers register for a new account, the password that they enter should be hashed and salted.
  • All input fields should be validated using client-side validation, checking for length and blank values, and any extra condition as needed.
  • All passwords must have a minimum of 8 characters and a maximum of 12. They must include at least one upper case alpha character, one special character, and one number.
  • All code that is created MUST BE YOUR OWN CODE.
  • This is an individual assignment, not a group assignment.

Customer

  • Customers who are going to be registering themselves must enter their:
    • Full Name.
    • Phone Number.
    • Email Address,
    • Password.
  • Customers who are already registered would use their email and password to log in.
  • When a Customer logs into the system, they should be presented with these main options on their homepage.
    • Search Barber/Hairdresser: by name or location to book an appointment. Once they have found and selected a particular barber/hairdresser, they can check available free slots.
  • View their own bookings: they should be able to cancel a booking if they wanted.
  • Place a complaint about a service provider.
  • Logout from the system: this should be done properly and not just closing the window/browser.

Service Provider

  • Barbers/ Hairdressers who are going to be registering themselves must enter their:
    • Full Name:
    • Phone Number:
    • Email Address:
    • Location:
    • Password:
  • They must be notified that their registration is subject to the approval of the administrator.
  • Barbers/ Hairdressers who are already registered would use their email and password to log in.
  • When a barber/hairdresser logs into the system, they should be presented with these main options on their homepage.
  • View a list of upcoming appointments: they should have an option to let the customer know that the booking has been received and confirmed.
  • Set availability: set specific slots as available or not available.
  • Set status of the appointment: if it has been completed or if the customer did not arrive.
  • Logout from the system: this should be done properly and not just closing the window/browser.

Administrator

  • An admin account should be created separately. Admin credentials are
    • email: admin@admin.admin
    • password: admin
  • As the administrator should be already registered, they would use their email and password to log in.
  • When an administrator logs into the system, they should be presented with these main options on their homepage.
    • Verify a service provider: when any barber/hairdresser registers themselves on the website.
    • Logout from the system: this should be done properly and not just closing the window/browser.
    • View the activities performed by the barbers and customers.

Specific Web Application Requirements

  • All of the pages which the user is viewing should always be validated to ensure that a user is not on a page without having a validated account.
  • Proper logout system, invalidating the current session.
  • After anyone has logged in, a session should be started storing their name and a token to ensure that the current session is valid.

You may use a framework such as BOOTSTRAP for your design, and this is in fact encouraged. If it is an actual template that someone else has made (that you purchase, for example), we will allow for it but only under the following conditions:

  1. The template only includes HTML, CSS and Javascript, and no PHP. In other words, you may use the template for website design purposes only (and not server-side functionality).
  2. You must reference the template source in your submission in a separate short document.
  3. It is ok to use snippets of JavaScript code without understanding it, but if you do use a template you are expected to understand the majority of the code so as to implement it in your project. Hence, you must also be prepared to be able to answer certain questions on the template used if it arises.

Note: You are allowed copy and paste snippets of code without having to reference this. This is the way us coders code.

Specific GUI Programming Requirements

  • No use of code generator is allowed for the design of the GUI
  • You are allowed to use other tools apart from the ones seen in class, as long it is your own code. So feel free to explore other types of Layout Managers, Listeners and/or Components for your programme.
  • All your code must be properly commented. Make sure to follow the correct structure for comments and API documentation.
  • The use of external libraries is allowed, as long as the sources are properly cited.

Specific Database Requirements

For this assignment, you may use any visual database design or administration tools, such as MySQL Workbench, HeidiSQL, phpAdmin, or other drawing tools such as lucid charts and draw.io. You are required to do the design in three different stages:

  1. Conceptual design: you are asked to do the conceptual design using CHEN notation. For this, you need to identify:
    1. Entities, e. rectangles for Chen, tables for lucid charts. For additional marks, identify, if any, entity types, e.g., weak or strong entity.
    2. Attributes, and again for additional marks detail the attribute types.
    3. The relationship between tables including cardinality ratios (and suitable verb for the relationship)
  2. Logical design: Transform the conceptual representation from above to the logical structure in the Relational Model. In other words, convert the above CHEN into more detailed tables using software such as lucid charts or MySQL Workbench. This includes the following tasks:
  1. Derive relations (i.e., tables)
  2. Include relationships and check integrity constraints (keys)
  3. Validate the Relational Model using Normalization
  4. Produce a Data Dictionary for each Relation (see Appendix for template)
  1. Physical design: For this, you need to include all details in the diagram (including tables, columns, keys, domains, defined naming convention) and also produce the SQL create statements for each relation.

You can find some background information on design stages here: https://en.wikipedia.org/wiki/Logical_data_model.

Note: Marks will not be deducted for small discrepancies between design details for each phase. You may find differences between the design details advised from class and design details that you may find from an online source. An example of a discrepancy might be if you decided to not state the primary key in the conceptual stage and instead you put it in the next design phase, i.e. the logical design. However, please provide some reference in your report if you are following a different approach.

Implementation using INSERT statements: Provide the SQL statements used to insert data into your relations. Each relation (table) should contain a minimum of 5 rows. Your report will include the insert statements (text format) and screenshots of your tables showing its contents

Note on identification in screenshots:

If you use the command line like we have in our Labs and for CA1, ensure that ALL screenshots show your name/student number in the title bar. If you are going to use MySQL workbench, phpAdmin, HeidiSQL, or other, you don’t need to put your name in the screenshot but do make sure to have your name and student number in the SQL file that you submit.

Testing: To illustrate that your database has met the requirements mentioned above, write the SQL statements that will provide the following information:

  1. A list of all customers (first name and last name) registered for the service.
  2. A list of all bookings that were approved after 01/09/2018.
  3. A list of all the barbers and the appointments they have completed.
  4. Using an SQL statement, return how many barbers there are registered in the database?
  5. For each barber, the number of appointments they have had (and completed).
  6. For each barber, the number of customers they have had this year. [Hint this query will use Group By]
  7. The name of all customers and the barber they have been booked in with.

Additional Marks

For additional security of administration, you should follow below requirements.

  • Remove the hard-coded administrator user and password. Create a new table which contains a username and password. This will be the table against which the Admin login should validate against.
  • Add some functionality to the administrator dashboard to would allow them to create another administrator.
  • In addition, the system should be enhanced to ensure customer and barber cannot register more than once.
  • An additional component could be that after the service has been done, the customer can also leave reviews on the system, and accordingly be viewed by the service provider.
  • As the system is sensitive to automated attacks, a CAPTCHA should be added onto the registration page to ensure that automated bots cannot register.

Deliverables and Deadlines

Planning is the key to this assignment. Do not jump into the development process straight away. Instead, ensure you think about the different sections that are needed and what the database structure will look like. After this has been completed, then you can start development. For this reason, you will be submitting your assignment in four stages.

If one particular submission has more than one file, all of them must be zipped up a single file and uploaded to Module before the deadline.

First Submission – 25th November, 2018

  • Database analysis report (pdf file) including:
    • The conceptual design
    • The logical design
    • The physical design

(Refer to requirements above)

  • Database: .sql file that includes the database scheme, the records of your database and (create a database dump file for creation and inserts of your database) comment in the SQL file with your name and student number in it.

Second Submission – 2nd December, 2018

  • Website application source
  • All files (folder structure intact) must be zipped up a single file and uploaded to Moodle before the deadline.

Third Submission – 9th December, 2018

  • Java programme source code
  • All files must be zipped up a single file and uploaded to Moodle before the deadline.

If the external library is used, the JAR file for them must be included in your submission.

Get This Answer with Case Study Help-24/7 Q&A Help

We're here to instantly help! Get best assignment questions and answers help 24/7 and Earn better grades with homework

PLACE YOUR ORDER HERE

Top