联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> Database作业Database作业

日期:2021-06-25 09:06

COMP9900 Information Technology Project

2021 T2

Project Proposal

Project name: Scent Searcher

COMP9900 Project Proposal Group Pikachu

Table of Contents

Background 4

Objectives 5

Scent Searcher 5

Site Maintainer 5

User Stories and Sprints 6

Sprints 6

User Story Analysis 6

User Stories 8

Epic1: Create an account 8

Epic2: Log in and log out 8

Epic3: View perfume 8

Epic4: Search for perfume 8

Epic5: Review perfume 9

Epic6: Bookmark perfume 9

Epic7: Get recommended perfume 9

Epic8: Publish new perfume 10

Epic9: Notification 10

Epic10: Link account with Google 10

Jira Backlog 11

System Architecture 13

Software Architecture 13

Application Architecture 13

Related Technology 15

Group Management 17

Interface and Flow Diagram 18

Flow Diagram 19

Reference 20

2

COMP9900 Project Proposal Group Pikachu

Background

The consumer market for perfume is growing in recent years as people's quality of life

improves. The consumer base for perfume is also younger and is not limited to women alone.

The demand for fragrances is becoming more personalised and more and more niche brands are

being sought after by young people.

Many people want a platform where they can accurately search for fragrances with the

scent they want and get a basic idea of the fragrances they haven't come across based on other

people's reviews and ratings. Merchants also need a platform to publish their latest perfume

scents.

We visited some of the websites and forums on the market that attempt to implement

these features and found them to be inefficient, with some sites being too picky and

one-dimensional in their search for perfumes and scents, with users only being able to find the

perfume they want by searching for the name of the perfume, with no way to find a specific

perfume by scent, and no way to search for the perfume they want at multiple levels of specific

criteria. There is no way to find a specific perfume by fragrance, let alone search for the

perfume you want at multiple levels of specificity. The site is also slow to update with new

perfume releases and niche brands. Some forums are full of users sharing their experiences

with perfumes without a systematic rating function and are full of advertisements from

merchants. The lack of tags also makes it inefficient for users to find their favourite posts or

fragrances.

So we wanted to create a site that would serve both businesses and perfume lovers and

consumers. Users could search for their most desired scents in a more efficient and

personalised way. At the same time, a well-developed review and rating system would ensure

user activity and satisfy the needs of more merchants, so there would be a virtuous circle.

3

COMP9900 Project Proposal Group Pikachu

Objectives

On the scent searcher website, there are two identity roles available when registering:

scent searcher and site maintainer.

Scent Searcher:

As a scent searcher, they will first be able to create their own personal page, where they

will fill in their name, contact details and favourite scent notes, and when the scent searcher has

finished adding scent notes, the page will be updated with the recommended fragrances based

on the scent notes they have added. This allows them to find the perfume they are looking for

more quickly. The site also gives automatic alerts (in the form of notifications or emails) when

a new fragrance matches their scent notes.

Secondly, the site offers the following search modes: scent searcher can search for

perfumes matching a given set of notes and specify how many notes can be missing from the

results, and the results should be sorted in descending order of match; scent searcher can search

for the desired perfume by name (including fuzzy searches)

Thirdly, scent searchers can bookmark the fragrances they find and create

corresponding favourites, and comment on the fragrances they find (where each comment must

include some text and a rating out of 5), and the commenter's profile can be clicked on.

Last but not least, the full details of each perfume are clickable, including the name of the

perfume, brand, description, full set of notes, related images, related reviews, average review

ratings, and the number of likes for the perfume.

Site Maintainer:

As a site maintainer, they have the right to negotiate with merchants to promote new

fragrances and keep them up to date with all their details, including the name of the fragrance,

the brand, the description, and the full set of notes.

4

COMP9900 Project Proposal Group Pikachu

User Stories and Sprints

Sprints

[S1] Sprint 1: Week 4 - Week5 (before lab) Date: 21 June - 30 June

[S2] Sprint 2: Week 5 - Week6 Date: 1 July - 11 July

[S3] Sprint 3: Week 7 - Week8 (before lab) Date: 12 July - 21 July

[S4] Sprint 4: Week 8 - Week9 Date: 22 July - 1 Aug

User Story Analysis

All user stories of the Scent Searcher platform are given below. The stories are designed

based on the project objectives and analysis of existing systems. Each story has a unique

number, which is referenced from the User Stories part below. For the following paragraphs,

we will show our analysis about user stories based on the project objective.

1. Scent searchers have access to create a new account, log in and log out from the site, which

can be satisfied by user story 1, 5, and 6. Also, scent searchers are able to view full details

about any perfume on the platform, including its name, brand, description, full set of notes,

an associated image, associated reviews, average review rating, and the number of likes for

the perfume, which is satisfied by user story 10. At the same time, scent searchers can like

and leave reviews for any perfume on the platform, where each review includes some text

and a rating out of 5, which can be satisfied by user story 17, 18 and 19. Furthermore, scent

searchers can navigate to any review author's profile, which is satisfied by user story 20.

Besides, scent searchers are able to save a bookmark for any interesting perfume and are

able to see the entire set of all bookmarked perfumes at any time, also they can navigate to

any review author’s profile, which is satisfied by user story 21, 22, 23 and 24. All these

functions are part of the main requirements in the Scent Searcher website.

2. Site maintainers also have access to create a new account, log in and log out from the site,

which can be satisfied by user story 3, 7, and 8. Site maintainers are able to publish new

perfumes on the platform, including details about the perfume's name, brand, description,

full set of notes and an associated image for the perfume, which is satisfied by user story 27.

All these functions are part of the main requirements in the Scent Searcher website.

5

COMP9900 Project Proposal Group Pikachu

3. The first important and novel function of our site is the recommendation system for scent

searchers. Scent searchers are able to get recommended perfumes on their profile page

according to the favourite scent notes they choose. They may change their favourite scent

notes in their profile, which means the recommendation result will be updated based on that

as well. This function is satisfied by user story 25 and 26, and it will help scent searchers

find new perfumes they might be interested in.

4. One more special function on our site is that scent searchers will be notified on their profile

when a new perfume is added that matches their favourite scent notes. At the same time,

scent searchers can navigate to the detail page of the new perfume directly from the

notification, which will definitely save some time for scent searchers to look for perfume

they are interested in. This function will be met through user story 29 and 30.

5. On our site, we also add some features for site maintainers. If they feel like one of their

published perfumes is out of style, they can also have a choice to delete their published

perfume on the platform. This function is satisfied by user story 28.

6. Another novel function of our site is the search function. The scent searchers can search a

perfume by its name as well as its partial name if they cannot remember the name exactly.

This function is satisfied by user story 11 and 12. Additionally, scent searchers can directly

navigate to one perfume’s detail page for any searching result. This function is satisfied by

user story 16.

7. Compared with existing systems, another novel feature is that scent searchers can search a

perfume by its notes. When searching by notes, scent searchers can decide which notes must

appear in the result perfume, which might appear in the result perfume and which cannot

appear in the result perfume. Also, the search result will show which notes are included and

which are missing. If multiple matching results are found, these results will be displayed in

descending order of the number of matching notes. This function is satisfied by user story

13, 14 and15.

6

COMP9900 Project Proposal Group Pikachu

User Stories

Each story belongs to a sprint we defined above, specified in square brackets.

Epic1: Create an account

1. [S1] As a scent searcher, I want to create an account.

2. [S1] As a scent searcher, I want to have my own profile, where I can specify my name,

contact details (email), and my favourite scent notes.

3. [S1] As a site maintainer, I want to create an account.

4. [S1] As a site maintainer, I want to have my own profile, where I can specify my name,

contact details (email), and my published perfumes.

Epic2: Log in and log out

5. [S1] As a scent searcher, I want to log in to my account, so I can get all the scent

searchers’ function access.

6. [S1] As a scent searcher, I want to log out my account.

7. [S1] As a site maintainer, I want to log in to my account, so I can get all the

maintainers’ function access.

8. [S1] As a site maintainer, I want to log out my account.

Epic3: View perfume

9. [S1] As a scent searcher, I want to see the scent notes via tags and icons, so I do not

need to remember the complicated scent words.

10. [S2] As a scent searcher, I want to view any perfume’s full detail page which I am

interested in, including their name, brand, description, full set of notes, an associated

image, associated reviews, average review rating and the number of likes.

Epic4: Search for perfume

11. [S2] As a scent searcher, I want to search perfumes by name, so I can get the details

about the perfume which I might be interested in.

12. [S2] As a scent searcher, I want to search for perfumes by their partial name, because

sometimes I don’t remember their name exactly.

7

COMP9900 Project Proposal Group Pikachu

13. [S2] As a scent searcher, I want to search for perfumes that match a given set of notes,

so I can know which perfume or perfumes are suitable for me.

14. [S2] As a scent searcher, while searching perfumes by scent notes, I want to know

which note or notes are missing from the results.

15. [S2] As a scent searcher, while searching perfumes by scent notes, I want to know the

matching results by sorting, that is, perfumes with more matching notes come first.

16. [S2] As a scent searcher, I want to navigate to any perfume detail for any search results.

Epic5: Review perfume

17. [S3] As a scent searcher, I want to leave reviews for any perfume on the platform, so I

can help other scent searchers find their desired scents.

18. [S3] As a scent searcher, I want to leave thumbs (like) any perfume, so I can help other

scent searchers find their desired scents.

19. [S3] As a scent searcher, I want to rate out of 5 for any perfume.

20. [S3] As a scent searcher, I want to be able to navigate to any review author’s profile

while looking through the reviews of the perfumes.

Epic6: Bookmark perfume

21. [S3] As a scent searcher, I want to save a bookmark for one perfume that I am interested

in, so I do not need to search for it next time.

22. [S3] As a scent searcher, I want to see my entire set of all bookmarked perfumes at any

time, so I can know which perfumes I like at any time.

23. [S3] As a scent searcher, I want to navigate to the details of any perfume I like in my

bookmark, so I do not need to search for it again.

24. [S3] As a scent searcher, I want to delete one bookmarked perfume at any time if I am

no longer interested in it.

Epic7: Get recommended perfume

25. [S4] As a scent searcher, I want to update my favourite notes at any time.

26. [S4] As a scent searcher, I want to get some recommendations on my profile about

which perfume I might be interested in based on my favourite notes.

8

COMP9900 Project Proposal Group Pikachu

Epic8: Publish new perfume

27. [S2] As a site maintainer, I want to publish new perfumes on the platform, including

details about a perfume's name, brand, description, note composition (its full set of

notes), and an associated image, so the scent searcher can search it.

28. [S4] As a site maintainer, I want to delete any perfume which I have published at any

time.

Epic9: Notification

29. [S4] As a scent searcher, I want to be notified on my profile when some site maintainer

adds a new perfume that matches my favourite notes, so I can get a potentially

interesting perfume.

30. [S4] As a scent searcher, when I get a notification about a new perfume, I want to

navigate to the perfume page directly to look through the full details, so I can save some

time.

Epic10: Link account with Google

31. [S4] As a scent searcher, I want to associate my account with Google account to

facilitate my next login.

32. [S4] As a site maintainer, I want to associate my account with Google account to

facilitate my next login.

9

COMP9900 Project Proposal Group Pikachu

Jira Backlog

All user stories have been set up in Jira. A screenshot with all issues in Jira Product Backlog is

as follows.

10

COMP9900 Project Proposal Group Pikachu

11

COMP9900 Project Proposal Group Pikachu

System Architecture

Software Architecture

In the front-end, HTML, CSS, JavaScript and React are applied to complete the design.

Then, Python Flask is our main framework for the development of the back-end. For data, we

use Amazon-related services to deploy, like Amazon EC2 server, Amazon RDS with MySQL,

and Amazon S3, which is applied in images. In addition, the third API, such as Google, could

be utilized. The main software architecture is presented as the following graph:

Application Architecture

12

COMP9900 Project Proposal Group Pikachu

We use the MVC model(Model-View-Control) to develop this site. The part of View is

the interface to interact with the users(in this site, they are Scent searcher and Site maintainer),

in this part HTML, CSS could be applied. The part of the controller, which is an agent to

communicate between the front-end and back-end. For the Model, the process of the data,

developing certain functions and design of the database is realized in this part.

13

COMP9900 Project Proposal Group Pikachu

Related Technology

In this project, we mainly use the following technologies to achieve related functions.

Backend Development

Flask is a lightweight framework with incomplex features and can help developers to

add functions to applications flexibly. Because flask supports the development of sub-modules,

team members can use flask to complete their own function development, the overall

development efficiency will be high. In addition, it has many extensions and libraries.

Therefore, Python Flask is our main framework for development.

Database

The database will use Amazon Relational Database Service (Amazon RDS) and

MySQL. We can set up, make operations, and scale a database easily in the cloud using

Amazon RDS. It provides resizable and cost-efficient capacity. In addition, it can implement

administration tasks that are time-consuming automatically such as database setup, hardware

provisioning, backups and patching. It provides us with several database engines and we

choose MySQL.

Frontend Development

The Front-end framework language will mainly use HTML, CSS and JavaScript, also

we will use React as the front-end framework. There are many advantages in using React. It

has all kinds of flexible tools, ecosystems, and libraries. In addition, it can develop an

application that is high-scalable with simple debugging and testing. And it can develop a

complex application quickly. Overall, it can help us to create a high-performance site.

Project Management Method

The project runs in an agile manner, includes a good understanding of functional

modules, and is built by multiple sprints.

14

COMP9900 Project Proposal Group Pikachu

Jira is used to manage the workflow. We can upload project epics to adjust task status,

supervise team members and complete corresponding tasks. The reason for using Jira is to

automatically organize our project, effectively solve to-do tasks, and better manage project

progress.

Github is used to collect and organize the codes of all members and their daily notes.

The reason for choosing GitHub is to build a remote warehouse, share the code of team

members, update the code in the library in real-time, and improve production efficiency. At the

same time, GitHub can also help us view our history, which can effectively prevent progress

from crashing and losing progress. This is useful for debugging.

15

COMP9900 Project Proposal Group Pikachu

Group Management

Daily Catch Up: WeChat group and Jira

We will communicate about each other’s progress in the Wechat group every day to ensure we

are on the same page.

Weekly Video Meeting: BB Colab(During lab), Wechat group meeting or Zoom meeting

(Time flexible, once per week at least)

We will discuss our project at the weekly meeting. It will ensure we meet our goal and we are

on the right way as planned.

Weekly Report: Github Project

We will maintain a weekly updated work diary individually on GitHub to record our

contribution to this project.

16

COMP9900 Project Proposal Group Pikachu

Interface and Flow Diagram

First of all, all visitors are able to view the main page without logging in.

In the upper right corner of the main page is the login button, visitors will navigate to the login

page. If this visitor is new to our website, then he can jump to the register page.

After signing in, users will be navigated to their profile page. For the new user, he will be

navigated to the favourite note page to choose perfume notes after registration and then

navigated to his profile page. Therefore, some recommended perfumes will be shown on the

profile page based on his choice notes.

Following that, all users can browse all the perfumes on the platform, and also choose

to search for interesting perfumes by name or scent notes. The result will display on the result

page. Clicking the result perfume will jump to the perfume detail page. On the perfume detail

page, users can view other’s reviews and they are able to navigate to the review author’s profile

page.

On the other hand, there is a bookmark area in every scent searcher’s profile. Users can

view their entire set of bookmarked perfumes at any time, and also go to the perfume detail

page directly.

For a site maintainer, there is a different profile page for him which contains his

published perfumes. And he can jump to the publish page to publish a new perfume via a

button on his profile.

17

COMP9900 Project Proposal Group Pikachu

Flow Diagram

18

COMP9900 Project Proposal Group

Pikachu

Reference

Blog | Imaginary Cloud. 2021. Flask vs Django: Pirates use Flask, The Navy uses Django.

[online] Available at: [Accessed 17


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp