” COMP9900程序 写作、 辅导SQLCOMP9900 Information Technology Project2021 T2Project ProposalProject name: Scent SearcherCOMP9900 Project Proposal Group PikachuTable of ContentsBackground 4Objectives 5Scent Searcher 5Site Maintainer 5User Stories and Sprints 6Sprints 6User Story Analysis 6User Stories 8Epic1: Create an account 8Epic2: Log in and log out 8Epic3: View perfume 8Epic4: Search for perfume 8Epic5: Review perfume 9Epic6: Bookmark perfume 9Epic7: Get recommended perfume 9Epic8: Publish new perfume 10Epic9: Notification 10Epic10: Link account with Google 10Jira Backlog 11System Architecture 13Software Architecture 13Application Architecture 13Related Technology 15Group Management 17Interface and Flow Diagram 18Flow Diagram 19Reference 202COMP9900 Project Proposal Group PikachuBackgroundThe consumer market for perfume is growing in recent years as peoples quality of lifeimproves. 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 arebeing sought after by young people.Many people want a platform where they can accurately search for fragrances with thescent they Want and get a basic idea of the fragrances they havent come across based on otherpeoples reviews and ratings. Merchants also need a platform to publish their latest perfumescents.We visited some of the websites and forums on the market that attempt to implementthese features and found them to be inefficient, with some sites being too picky andone-dimensional in their search for perfumes and scents, with users only being able to find theperfume they want by searching for the name of the perfume, with no way to find a specificperfume by scent, and no way to search for the perfume they want at multiple levels of specificcriteria. There is no way to find a specific perfume by fragrance, let alone search for theperfume you want at multiple levels of specificity. The site is also slow to update with newperfume releases and niche brands. Some forums are full of users sharing their experienceswith perfumes without a systematic rating function and are full of advertisements frommerchants. The lack of tags also makes it inefficient for users to find their favourite posts orfragrances.So we wanted to create a site that would serve both businesses and perfume lovers andconsumers. Users could search for their most desired scents in a more efficient andpersonalised way. At the same time, a well-developed review and rating system would ensureuser activity and satisfy the needs of more merchants, so there would be a virtuous circle.3COMP9900 Project Proposal Group PikachuObjectivesOn 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 theywill fill in their name, contact details and favourite scent notes, and when the scent searcher hasfinished adding scent notes, the page will be updated with the recommended fragrances basedon the scent notes they have added. This allows them to find the perfume they are looking formore quickly. The site also gives automatic alerts (in the form of notifications or emails) whena new fragrance matches their scent notes.Secondly, the site offers the following search modes: scent searcher can search forperfumes matching a given set of notes and specify how many notes can be missing from theresults, and the results should be sorted in descending order of match; scent searcher can searchfor the desired perfume by name (including fuzzy searches)Thirdly, scent searchers Can bookmark the fragrances they find and createcorresponding favourites, and comment on the fragrances they find (where each comment mustinclude some text and a rating out of 5), and the commenters profile can be clicked on.Last but not least, the full details of each perfume are clickable, including the name of theperfume, brand, description, full set of notes, related images, related reviews, average reviewratings, and the number of likes for the perfume.Site Maintainer:As a site maintainer, they have the right to negotiate with merchants to promote newfragrances 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.4COMP9900 Project Proposal Group PikachuUser Stories and SprintsSprints[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 AugUser Story AnalysisAll user stories of the Scent Searcher platform are given below. The stories are designedbased on the project objectives and analysis of existing systems. Each story has a uniquenumber, 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, whichcan be satisfied by user story 1, 5, and 6. Also, scent searchers are able to view full detailsabout 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 forthe perfume, which is satisfied by user story 10. At the same time, scent searchers can likeand leave reviews for any perfume on the platform, where each review includes some textand a rating out of 5, which can be satisfied by user story 17, 18 and 19. Furthermore, scentsearchers can navigate to any review authors profile, which is satisfied by user story 20.Besides, scent searchers are able to save a bookmark for any interesting perfume and areable to see the entire set of All bookmarked perfumes at any time, also they can navigate toany review authors profile, which is satisfied by user story 21, 22, 23 and 24. All thesefunctions 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 newperfumes on the platform, including details about the perfumes 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.5COMP9900 Project Proposal Group Pikachu3. The first important and novel function of our site is the recommendation system for scentsearchers. Scent searchers are able to get recommended perfumes on their profile pageaccording to the favourite scent notes they choose. They may change their favourite scentnotes in their profile, which means the recommendation result will be updated based on thatas well. This function is satisfied by user story 25 and 26, and it will help scent searchersfind new perfumes they might be interested in.4. One more special function on our site is that scent searchers will be notified on their profilewhen 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 thenotification, which will definitely save some time for scent searchers to look for perfumethey 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 theirpublished perfumes is out of style, they can also have a choice to delete their publishedperfume 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 aperfume 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 directlynavigate to one perfumes detail page for any searching result. This function is satisfied byuser story 16.7. Compared with existing systems, another novel feature is that scent searchers can search aperfume by its notes. When searching by notes, scent searchers can decide which notes mustappear in the result perfume, which might appear in the result perfume and which cannotappear in the result perfume. Also, the search result will show which notes are included andwhich are missing. If multiple matching results are found, these results will be displayed indescending order of the number of matching notes. This function is satisfied by user story13, 14 and15.6COMP9900 Project Proposal Group PikachuUser StoriesEach story belongs to a Sprint we defined above, specified in square brackets.Epic1: Create an account1. [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 out5. [S1] As a scent searcher, I want to log in to my account, so I can get all the scentsearchers 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 themaintainers function access.8. [S1] As a site maintainer, I want to log out my account.Epic3: View perfume9. [S1] As a scent searcher, I want to see the scent notes via tags and icons, so I do notneed to remember the complicated scent words.10. [S2] As a scent searcher, I want to view any perfumes full detail page which I aminterested in, including their name, brand, description, full set of notes, an associatedimage, associated reviews, average review rating and the number of likes.Epic4: Search for perfume11. [S2] As a scent searcher, I want to search perfumes by name, so I can get the detailsabout the perfume which I might be interested in.12. [S2] As a scent searcher, I want to search for perfumes by their partial name, becausesometimes I dont remember their name exactly.7COMP9900 Project Proposal Group Pikachu13. [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 knowwhich note or notes are missing from the results.15. [S2] As a scent searcher, while searching perfumes by scent notes, I want to know thematching 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 perfume17. [S3] As a scent searcher, I want to leave reviews for any perfume on the platform, so Ican 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 otherscent 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 authors profilewhile looking through the reviews of the perfumes.Epic6: Bookmark perfume21. [S3] As a scent searcher, I Want to save a bookmark for one perfume that I am interestedin, 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 anytime, 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 mybookmark, 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 amno longer interested in it.Epic7: Get recommended perfume25. [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 aboutwhich perfume I might be interested in based on my favourite notes.8COMP9900 Project Proposal Group PikachuEpic8: Publish new perfume27. [S2] As a site maintainer, I want to publish new perfumes on the platform, includingdetails about a perfumes name, brand, description, note composition (its full set ofnotes), 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 anytime.Epic9: Notification29. [S4] As a scent searcher, I want to be notified on my profile when some site maintaineradds a new perfume that matches my favourite notes, so I can get a potentiallyinteresting perfume.30. [S4] As a scent searcher, when I get a notification about a new perfume, I want tonavigate to the perfume page directly to look through the full details, so I can save sometime.Epic10: Link account with Google31. [S4] As a scent searcher, I want to associate my account with Google account tofacilitate my next login.32. [S4] As a site maintainer, I want to associate my account with Google account tofacilitate my next login.9COMP9900 Project Proposal Group PikachuJira BacklogAll user stories have been set up in Jira. A screenshot with all issues in Jira Product Backlog isas follows.10COMP9900 Project Proposal Group Pikachu11COMP9900 Project Proposal Group PikachuSystem ArchitectureSoftware ArchitectureIn 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, weuse 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, couldbe utilized. The main software architecture is presented as the following graph:Application Architecture12COMP9900 Project Proposal Group PikachuWe use the MVC model(Model-View-Control) to develop this site. The part of View isthe 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 tocommunicate 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.13COMP9900 Project Proposal Group PikachuRelated TechnologyIn this project, we mainly use the following technologies to achieve related functions.Backend DevelopmentFlask is a lightweight framework with incomplex features and can help developers toadd functions to applications flexibly. Because flask supports the development of sub-modules,team members can use flask to complete their own function development, the overalldevelopment efficiency will be high. In addition, it has many extensions and libraries.Therefore, Python Flask is our main framework for development.DatabaseThe database Will use Amazon Relational Database Service (Amazon RDS) andMySQL. We can set up, make operations, and scale a database easily in the cloud usingAmazon RDS. It provides resizable and cost-efficient capacity. In addition, it can implementadministration tasks that are time-consuming automatically such as database setup, hardwareprovisioning, backups and patching. It provides us with several database engines and wechoose MySQL.Frontend DevelopmentThe Front-end framework language will mainly use HTML, CSS and JavaScript, alsowe will use React as the front-end framework. There are many advantages in using React. Ithas all kinds of flexible tools, ecosystems, and libraries. In addition, it can develop anapplication that is high-scalable with simple debugging and testing. And it can develop acomplex application quickly. Overall, it can help us to create a high-performance site.Project Management MethodThe project runs in an agile manner, includes a good understanding of functionalmodules, and is built by multiple sprints.14COMP9900 Project Proposal Group PikachuJira 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 toautomatically organize our project, effectively solve to-do tasks, and better manage projectprogress.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 teammembers, update the code in the library in real-time, and improve production efficiency. At thesame time, GitHub can also help us view our history, which can effectively prevent progressfrom crashing and losing progress. This is useful for debugging.15COMP9900 Project Proposal Group PikachuGroup ManagementDaily Catch Up: WeChat Group and JiraWe will communicate about each others progress in the Wechat group every day to ensure weare 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 areon the right way as planned.Weekly Report: Github ProjectWe will maintain a weekly updated work diary individually on GitHub to record ourcontribution to this project.16COMP9900 Project Proposal Group PikachuInterface and Flow DiagramFirst 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 loginpage. 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 benavigated to the favourite note page to choose perfume notes after registration and thennavigated to his profile page. Therefore, some recommended perfumes will be shown on theprofile page based on his choice notes.Following that, all users can browse all the perfumes on the platform, and also chooseto search for interesting perfumes by name or scent notes. The result will display on the resultpage. Clicking the result perfume Will jump to the perfume detail page. On the perfume detailpage, users can view others reviews and they are able to navigate to the review authors profilepage.On the other hand, there is a bookmark area in every scent searchers profile. Users canview their entire set of bookmarked perfumes at any time, and also go to the perfume detailpage directly.For a site maintainer, there is a different profile page for him which contains hispublished perfumes. And he Can jump to the publish page to publish a new perfume via abutton on his profile.17COMP9900 Project Proposal Group PikachuFlow Diagram18COMP9900 Project Proposal GroupPikachuReferenceBlog | Imaginary Cloud. 2021. Flask vs Django: Pirates use Flask, The Navy uses Django.[online] Available at: [Accessed 17请加QQ:99515681 或邮箱:99515681@qq.com WX:codehelp
“
添加老师微信回复‘’官网 辅导‘’获取专业老师帮助,或点击联系老师1对1在线指导。