乐趣区

关于https:COMP9900-Information-Technology

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
  8. [S1] As a scent searcher, I want to create an account.
  9. [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.
  10. [S1] As a site maintainer, I want to create an account.
  11. [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
  12. [S1] As a scent searcher, I want to log in to my account, so I can get all the scent
    searchers’function access.
  13. [S1] As a scent searcher, I want to log out my account.
  14. [S1] As a site maintainer, I want to log in to my account, so I can get all the
    maintainers’function access.
  15. [S1] As a site maintainer, I want to log out my account.
    Epic3: View perfume
  16. [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.
  17. [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
  18. [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.
  19. [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
  20. [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.
  21. [S2] As a scent searcher, while searching perfumes by scent notes, I want to know
    which note or notes are missing from the results.
  22. [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.
  23. [S2] As a scent searcher, I want to navigate to any perfume detail for any search results.
    Epic5: Review perfume
  24. [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.
  25. [S3] As a scent searcher, I want to leave thumbs (like) any perfume, so I can help other
    scent searchers find their desired scents.
  26. [S3] As a scent searcher, I want to rate out of 5 for any perfume.
  27. [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
  28. [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.
  29. [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.
  30. [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.
  31. [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
  32. [S4] As a scent searcher, I want to update my favourite notes at any time.
  33. [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
  34. [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.
  35. [S4] As a site maintainer, I want to delete any perfume which I have published at any
    time.
    Epic9: Notification
  36. [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.
  37. [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
  38. [S4] As a scent searcher, I want to associate my account with Google account to
    facilitate my next login.
  39. [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
    WX:codehelp
退出移动版