代写COMP 636: Web App Assessment

COMP 636: Web App Assessment
Milestone submission due: 5pm Wednesday 24 January 2024
Final submission due: 5pm Wednesday 14 February 2024
Worth: 50% of COMP636 grade
Submit via Akoraka | Learn, with files set up and available on GitHub and pythonanywhere.
Introduction
Selwyn Panel Beaters have decided that they want to upgrade their internal system from the textbased system to a web-based system. Your task is to develop a small Web Application to help them
manage customers, jobs, services, parts and billing. You will also write a report.
In the existing system, Selwyn Panel Beaters record multiple items (services, parts) by entering them
multiple times. In the web system they want to be able to enter a single job for a vehicle and then
record the quantities of services and parts within that job.
There are two different types of users who will use the system. The first is a technician who can
select a customer job and add services and parts to that job.
The second is an office administrator who can book (create) jobs, add customers, services and parts,
bill customers and enter payments.
Download the Web Application Project Files from the Assessment block on the Learn page. These will
get you started, including for the Milestone. You will add more routes and templates as you develop
your app.
Important
This is an individual assessment. You may not collaborate or confer with others. You
may help others by verbally explaining concepts and making suggestions in general
terms, but without directly showing or sharing your own code. You must develop the
logical structure and the detail of your code on your own, even if you are working
alongside others. Code that is copied or shares a similar logic to others will receive zero
marks for both parties. The University policy on Academic Integrity can be found here.
Functional Requirements
There will be two interfaces:
• An interface for the technicians as the main users of the system. This allows technicians to
update customer jobs with parts and services.
• An Administrator interface for admin staff to use to update, edit and add data. This interface
requires administrators to access the system via a link from the menu system (do not add
password functionality – security would be added to a full system to restrict access, but will lose
marks if added for this assessment). The Admin link will provide a gateway to the Admin
features. The Admin features must not be visible in any of the technician interface (apart from
the Admin link in the menu).
2
Technician Interface on the default / route
• Current Jobs: Change the currentjobs page to display the customer’s name, rather than the ID
only. Modify or tidy the template as appropriate. This page only shows jobs that are not
completed.
• Job: A job is selected (via a link) from the currentjobs page. On this page services and parts can
be added to a job. The technician can select a part or service from existing lists (which are
maintained by the Admins). The technician enters the number of units of each part or service
used (e.g., 2 headlights or 1 respray). This page should also show the services and parts that
have already been used in the job. A job can also be marked as completed.
After a job is marked complete, the job total cost is calculated. Once a job is marked complete it
cannot be modified.
Administrator Interface
• Customer list: Display a list of customers, ordered by surname, then by first name.
• Customer search: Search for customers by first name or surname, allowing for partial text
matches. Order the results appropriately.
• Add customer: Add a new customer to the system (surname, phone number and email address
are required fields)
• Add Service: Add a new service to the system (name and cost are required)
• Add Part: Add a new part to the system (name and cost are required)
• Schedule Job: Select a customer and a date for the job to be booked for. The date must be
today or in the future. Only the date is required – a time on that day is not required.
• Unpaid bills & Pay Bills: Shows all unpaid bills in date then customer order, which can be
filtered by customer. A bill can then be selected so that it can be marked as paid by the Admin.
Bills that are paid should not show on the list.
• Billing History & Overdue Bills: A report showing all bills that, with bills that are unpaid more
than 14 days after the date of the job highlighted in red. The display should include the
customer details, the date of the job, the total cost of the job. Bills should be grouped by
customer, so that the customer details are only shown once above the list of bills for that
customer. Customers should be shown in last name, first name order. Bills should be shown
with the oldest bill first.
3
Report
Your report must be created using GitHub Markdown format and saved in the README.md file of
your GitHub repository. It does not need to be a formal report – a tidy document using the following
headings will be sufficient. Write a brief project report that includes:
• Web application structure:
o Outline the structure of your solution (routes & functions, and templates). This should be
brief and can be text-based or a diagram (as an image).
o It must indicate how your routes, functions and templates relate to each other, as well as
what data is being passed between them.
o Do not just give a list of your routes. Do not include all of your code. This relates to the
code, not the user experience – so do not describe the interface, user experience or HTML
layout.
• Design decisions:
o Discuss the design decisions you made when designing and developing your app: what
design options you weighed up, why you designed your app the way that you did, your
decisions about the routes, templates, navigation, broad layout, etc., that you made.
o For example, when the edit button is clicked on a page, does that open a different template
for editing or does it use the same template with IF statements to enable the editing? Did
you use GET or POST to request and send data, and how and why? You will have considered
many design possibilities. These are only two examples.
o Note your decisions as you work, so you do not forget them!
• Database questions: Refer to the supplied spb_local.sql file to answer the following questions:
1. What SQL statement creates the job table and defines its fields/columns? (Copy and
paste the relevant lines of SQL.)
2. Which line of SQL code sets up the relationship between the customer and job
tables?
3. Which lines of SQL code insert details into the parts table?
4. Suppose that as part of an audit trail, the time and date a service or part was added
to a job needed to be recorded, what fields/columns would you need to add to
which tables? Provide the table name, new column name and the data type. (Do not
implement this change in your app.)
5. Suppose logins were implemented. Why is it important for technicians and the office
administrator to access different routes? As part of your answer, give two specific
examples of problems that could occur if all of the web app facilities were available
to everyone.
• Image sources: It is not necessary to use any external images in your web app, but if you do,
ensure you reference the image source in your report.
4
Data Model
Model Notes:
Child table.field * (refers to) Parent table.field
job.customer customer.customer_id
job_part.job_id job.job_id
job_part.part_id part.part_id
job_service.job_id job.job_id
job_service.service_id service.service_id
* the ‘Foreign Key’
Project Requirements
You must:
• Use only the COMP636 technologies (Python & Flask, Bootstrap CSS, MySQL). Do not use
SQLAlchemy or ReactJS (or other similar technologies) in your solution.
Do not use any scripts, including JavaScript, except for the

热门主题

课程名

mktg2509 csci 2600 38170 lng302 csse3010 phas3226 77938 arch1162 engn4536/engn6536 acx5903 comp151101 phl245 cse12 comp9312 stat3016/6016 phas0038 comp2140 6qqmb312 xjco3011 rest0005 ematm0051 5qqmn219 lubs5062m eee8155 cege0100 eap033 artd1109 mat246 etc3430 ecmm462 mis102 inft6800 ddes9903 comp6521 comp9517 comp3331/9331 comp4337 comp6008 comp9414 bu.231.790.81 man00150m csb352h math1041 eengm4100 isys1002 08 6057cem mktg3504 mthm036 mtrx1701 mth3241 eeee3086 cmp-7038b cmp-7000a ints4010 econ2151 infs5710 fins5516 fin3309 fins5510 gsoe9340 math2007 math2036 soee5010 mark3088 infs3605 elec9714 comp2271 ma214 comp2211 infs3604 600426 sit254 acct3091 bbt405 msin0116 com107/com113 mark5826 sit120 comp9021 eco2101 eeen40700 cs253 ece3114 ecmm447 chns3000 math377 itd102 comp9444 comp(2041|9044) econ0060 econ7230 mgt001371 ecs-323 cs6250 mgdi60012 mdia2012 comm221001 comm5000 ma1008 engl642 econ241 com333 math367 mis201 nbs-7041x meek16104 econ2003 comm1190 mbas902 comp-1027 dpst1091 comp7315 eppd1033 m06 ee3025 msci231 bb113/bbs1063 fc709 comp3425 comp9417 econ42915 cb9101 math1102e chme0017 fc307 mkt60104 5522usst litr1-uc6201.200 ee1102 cosc2803 math39512 omp9727 int2067/int5051 bsb151 mgt253 fc021 babs2202 mis2002s phya21 18-213 cege0012 mdia1002 math38032 mech5125 07 cisc102 mgx3110 cs240 11175 fin3020s eco3420 ictten622 comp9727 cpt111 de114102d mgm320h5s bafi1019 math21112 efim20036 mn-3503 fins5568 110.807 bcpm000028 info6030 bma0092 bcpm0054 math20212 ce335 cs365 cenv6141 ftec5580 math2010 ec3450 comm1170 ecmt1010 csci-ua.0480-003 econ12-200 ib3960 ectb60h3f cs247—assignment tk3163 ics3u ib3j80 comp20008 comp9334 eppd1063 acct2343 cct109 isys1055/3412 math350-real math2014 eec180 stat141b econ2101 msinm014/msing014/msing014b fit2004 comp643 bu1002 cm2030
联系我们
EMail: 99515681@qq.com
QQ: 99515681
留学生作业帮-留学生的知心伴侣!
工作时间:08:00-21:00
python代写
微信客服:codinghelp
站长地图