COMP9900 Information Technology
Posted jetm8mtc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.
- 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. - 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 - 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. - 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. - 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. - 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. - 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 - [S1] As a scent searcher, I want to create an account.
- [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. - [S1] As a site maintainer, I want to create an account.
- [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 - [S1] As a scent searcher, I want to log in to my account, so I can get all the scent
searchers’ function access. - [S1] As a scent searcher, I want to log out my account.
- [S1] As a site maintainer, I want to log in to my account, so I can get all the
maintainers’ function access. - [S1] As a site maintainer, I want to log out my account.
Epic3: View perfume - [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. - [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 - [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. - [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 - [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. - [S2] As a scent searcher, while searching perfumes by scent notes, I want to know
which note or notes are missing from the results. - [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. - [S2] As a scent searcher, I want to navigate to any perfume detail for any search results.
Epic5: Review perfume - [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. - [S3] As a scent searcher, I want to leave thumbs (like) any perfume, so I can help other
scent searchers find their desired scents. - [S3] As a scent searcher, I want to rate out of 5 for any perfume.
- [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 - [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. - [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. - [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. - [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 - [S4] As a scent searcher, I want to update my favourite notes at any time.
- [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 - [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. - [S4] As a site maintainer, I want to delete any perfume which I have published at any
time.
Epic9: Notification - [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. - [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 - [S4] As a scent searcher, I want to associate my account with Google account to
facilitate my next login. - [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
以上是关于COMP9900 Information Technology的主要内容,如果未能解决你的问题,请参考以下文章
[转帖]Programmer’s guide to the big tech companies 💻
CORS 策略已阻止从源“http://localhost:3000”访问“http://localhost:9900/jaxrs-post-example/rest/customers”获取