210 likes | 397 Views
“Pleasure in the job puts perfection in the work” Aristotle. The team : Adriana Velicu Alexandru Diaconu Gabriel Musteata Project manager : Emanuela Cerchez. Magenta Beauty Salon. 2/21. References.
E N D
“Pleasure in the job puts perfection in the work” Aristotle The team: Adriana Velicu Alexandru Diaconu Gabriel Musteata Project manager: Emanuela Cerchez Magenta Beauty Salon
2/21 References To carry out this project, we had several interviews with the owner, manager and one of the 2 cosmeticians of the Magenta Beauty Salon - Mrs. Mihaela Godun. Magenta Beauty Salon Str. Pictorului nr. 4A, bl. K1, sc. C, Iasi, phone number: 0232236294 The documentation of the interviews was made after visiting websites of similar businesses, among which : http://store.yahoo.com/beautykliniek/ http://www.coafura.3x.ro/ http://www.getts.ro/
3/21 Statement of the Problem Magenta Beauty Salon is a growing business. It has more and more clients and its owner wants to keep track of supplies (products and tools), treatments, sessions, appointments and clients and has a great interest in statistics (e.g. which are the most popular treatments during the hot summer days? in which time of the year are the most clients?).
4/21 Proposed Solution To solve this problem, we are going to create a very efficient and user-friendly database which will store all the information Mrs. Mihaela needs.
5/21 Information Requirements • To create an efficient database which will fulfill our client's needs, we must store the following information: • CLIENT: id, first name, last name • - REGULAR client: date of birth, phone number and • a general description • TREATMENT_TYPE: code, name, description and its branch (e.g. manicure/pedicure, cosmetics) • TREATMENT: id, comments and an optional price change, which is a deviation from its normal cost, based on the particularities of that specific treatment; it is filled as the employee who applied it sees fit
6/21 Information Requirements • APPOINTMENT: an id and its scheduled time (date modelled separately) • SESSION: id, time of commencement and some global comments • SUPPLIER: name, phone number • SUPPLY: id, name • - PRODUCT: quantity, producer • PRICE: value and a start date, which will be explained later • DAY: date and weather, mainly because our client is interested in the weather conditions of each day appointments are made / cancelled or sessions take place
7/21 Structural Rules • An APPOINTMENT may be cancelled. • All APPOINTMENTs are tracked (both attended and cancelled). • The database must store the supplies in stock (SUPPLY_CLASS). • A SUPPLIER may provide the salon with either TOOLs or PRODUCTs. • There are some preset TREATMENT_TYPEs which have a code and a price. • The preset TREATMENT_TYPEs have a listing of products used by default. • A price belongs either to a TREATMENT_TYPE or a PRODUCT.
8/21 Structural Rules • A person becomes a SUPPLIER when he/she appears on a SUPPLY_LOG_ITEM for the first time. • A PRODUCT represents a class of products (e.g. L'Oreal Dermo-Expertise Hydra-Renewal Daily Dry Skin Cream). • It is not necessary to model the case in which CASUAL CLIENTs become REGULAR ones, because this change depends solely on the employees. • The PRICEof aPRODUCT may change over time and it's necessary to keep track of its history. • During a SESSION must be applied one or more TREATMENTs.
9/21 Procedural Rules • If a client is not satisfied with the result of a TREATMENT, the TREATMENT may be corrected at no extra charge. • PRODUCTs and TOOLs can only be bought from SUPPLIERs. • The salon sells PRODUCTs, but does not sell TOOLs. • If a person comes to the salon for the first time, but does not have an APPOINTMENT and the suitable employee is free at the time and agrees to apply that person the treatments he or she wants, then the person becomes a CLIENT that has one SESSION and no APPOINTMENTs. • Only CLIENTs may buy PRODUCTs.
10/21 Procedural Rules • If some global comments of a SESSION need to be made (that are not related to that SESSION's specific TREATMENT - e.g. something happens to a person and we do not know which TREATMENT caused it), they are stored in a short text, the SESSION's "global_comments“. • APPOINTMENTs are made by phone or at the center. • A CLIENT may change the scheduled day & time for an appointment he made. • If a scheduled SESSION (i.e. APPOINTMENT that is about to be attended) can not be held (e.g. because of lack of a necessary product type), then a new APPOINTMENT is made, and the old one is declared cancelled (by relating it to a day of cancellation').
11/21 Programmatic Rules • A TREATMENT's cost is computed by adding its price_changes to its TREATMENT_TYPE's PRICE (price_changes may be positive, negative or null). • If an APPOINTMENT has a cancellation DAY, then it is cancelled. • Otherwise, if the APPOINTMENT's scheduled DAY and time have not passed yet, then it is still pending; if the scheduled DAY and time have passed, then the APPOINTMENT was attended.
12/21 Assumptions & Constraints • Each CLIENT receives an artificial ID when he/she makes his/her first APPOINTMENT or attends the first SESSION. • A CLIENT is introduced in the database at the moment he/she makes an APPOINTMENT (even if the APPOINTMENT will later be cancelled) or attends a SESSION. Thus, a CLIENT may not lack both APPOINTMENTs and SESSIONs. • Each applied TREATMENT may deviate from its preset type by adding or removing products that are stored in "P_CHANGE_LIST_ITEM“. • A SUPPLIER is a person and not a company.
13/21 Assumptions & Constraints • If extra price changes occur (e.g. changes caused by product addition / removal), their sum is stored in 'price_changes' and their explanation in 'comments' (of treatment). • There can exist two SUPPLIERs with the same name. • A SUPPLIER may supply either TOOLs or PRODUCTs. • A PRODUCT SUPPLIER may only supply PRODUCTs from one company. • The id of a session must be the same as the appointment which preceded it, if any did. • A SESSION may not be related to a day which has not passed yet.
14/21 Assumptions & Constraints • If a SESSION has no APPOINTMENT associated, it gets an id with a value that no APPOINTMENT uses in its "id" field. • The 'weather' attribute is null if it belongs to a DAY that has not passed yet (i.e. scheduled day for an APPOINTMENT) and must hold a value otherwise. • A day must have a relation with a SESSION, an APPOINTMENT or both. • Type of the P_CHANGE_LIST_ITEM may be only 'added' or 'removed', reflecting if the product was added to, respectively removed from the treatment. • A DAY that has not passed yet, may not be the DAY of creation/cancelation for any APPOINTMENT.
ERD MAGENTA B E A U T Y S A L O N
16/21 Explanations • All the particularities of a given past TREATMENT are noted in the TREATMENT’s “comments” attribute. • Full_date = date and time. • CPP = Client Product Purchase. • TP = Treatment - Product. • TTA = Treatment Type – Appointment. • P_CHANGE = Price Change.
SUPPLY_LOG_ITEMS full_date quantity price_per_unit discount scs_id spr_name 14/06/2004 10:30 20 235.000 lei 5% 12 Harasim Dumitru 23/06/2004 17 :00 3 600.000 0% 20 Porcaru Maria 29/07/2004 8:00 13 573.000 lei 10% 6 Tilea Margareta 17/08/2004 19:00 10 235.000 lei 0% 12 Harasim Dumitru 17/21 Sample of Information SCS = SUPPLY_CLASS SPR = SUPPLIER
SUPPLIERS name phone_number Harasim Dumitru 0745388691 Porcaru Maria 0788325147 Tilea Margareta 0721589610 Vlad Gheorghe 0723984061 Zaharia Paulina 0743009007 18/21 Sample of Information
APPOINTMENTS id time scd_on cad_on cnd_on cet_id 342 10:15 02/08/2004 29/07/2004 31/07/2004 20 343 10:30 02/08/2004 31/07/2004 205 344 10:30 02/08/2004 31/07/2004 106 345 14:15 03/08/2004 31/07/2004 59 346 13:00 02/08/2004 31/07/2004 02/08/2004 193 347 09:40 04/08/2004 02/08/2004 357 19/21 Sample of Information SCD = SCHEDULED CND = CANCELLED CAD = CREATED CET = CLIENT Query: In which period of 7 days did the salon have most appointments? Result: 19/08/2004 – 25/08/2004 .
20/21 We are delighted that you have tasted a bit of our REVOLUTION.