代做INFOSYS 222 2024S2 A1P2 CROWDFUNDING APP代写留学生Matlab语言程序
- 首页 >> Algorithm 算法INFOSYS 222 2024S2 A1P2
CASE STUDY: CROWDFUNDING APP
You are tasked with designing the database for a new crowdfunding web application aimed at supporting students at the University of Auckland in turning their innovative ideas into startups. The application allows students to create and manage projects, receive backing from other users, and track the progress and success of their projects.
Each user has a unique ID, name, email, password, and role (i.e. student, mentor, or investor). A user can create multiple projects, back multiple projects, and mentor multiple projects. Additionally, an existing user can refer a new user to the platform.
Project, which is created by a user, has a unique ID, title, description, creation date, deadline, funding goal, and current amount funded. A project can belong to multiple categories and has multiple mentors. Each category, in turn, has a unique ID and name, and can include multiple projects.
Backing records the financial contribution from a user to a project which includes the amount and date. Each backing is associated with a single project; a user can back many projects, and a project can have multiple backers. Additionally, each backing can be associated with zero or one reward. A reward, offered by project creator to backer who pledges at or above a minimum backing amount, has a maximum number that can be given out for the project. One project can have multiple rewards. A transaction records the financial details of each backing, includes the amount, date and payment method.
Mentorship tracks the involvement of mentor with project, including the start date. Each mentorship is associated with a single project; a user can mentor multiple projects, and each project can have multiple mentors.
An update is posted by the project creator on a date to provide information about the project’s progress. Each project can have multiple updates. Comment, which can be left by a user on a project, includes a date. A user can comment on multiple projects, and a project can have multiple comments.
QUESTION 1 (12%)
Draw a logical ERD in crow’s foot notation for the case described. Make sure to indicate all relevant entity sets, attributes, primary keys, foreign keys, relationships with cardinalities, and existence dependencies. Following good database design principle, the ERD should minimise redundancy.
Include verb phrases when it is helpful. Make sure you state 5-10 design decisions / assumptions clearly as part of your answer in order to get any mark.
QUESTION 2 (6%)
After you complete the design of the logical data model from the previous question, you are told that there is a change with the case specification:
• Each user could assign themselves multiple roles instead of just one when they register
• Each user could choose to follow another user; the database would capture when such request is made and also when the following is accepted and started
Define 2-5 new requirements / design decisions to accommodate the change of case specification. Draw a logical ERD in crow’s foot notation (by updating the one from previous question) that incorporates the new requirements and reflects the required changes. Make sure to indicate all relevant entity sets, attributes, primary keys, foreign keys, relationships with cardinalities, and existence dependencies. Following good database design principle, the ERD should minimise redundancy. Include verb phrases when it is helpful. Make sure you state 2-5 new requirements / design decisions clearly as part of your answer in order to get any mark.