tuanthanh2067 / seeksi Goto Github PK
View Code? Open in Web Editor NEWHome Page: seeksi.vercel.app
Home Page: seeksi.vercel.app
Is your feature request related to a problem? Please describe.
The core features to be developed in Milestone 1 require a database for data persistence. We need to set up one for testing our app. For instance, user authentication and account updates (e.g. password reset, avatar update) can't operate without a database storing user data.
Are there any related issues? Please list all of them.
Describe the solution you'd like
Let's follow "best practices" by creating a separate database for testing and another for production.
Acceptance criteria
Describe alternatives you've considered
For the time being, just avoid features involving database operations.
Additional context
Is your feature request related to a problem? Please describe.
The "Message" page is where the user can have a conversation with his/her matched partners, either via text or photo.
Thus, we need to implement the following main elements to complete the chat window:
Are there any related issues? Please list all of them.
Describe the solution you'd like
Acceptance criteria
Describe alternatives you've considered
N/A
Additional context
We can use Apollo Client for our frontend and Apollo Server for our backend. Since we have already defined our data models, I'd prefer schema-first approach to building our GraphQL API.
For our GraphQL server, connecting to our MongoDB database can be supported by Mongoose.
Are there any related issues? Please list all of them.
Acceptance criteria
Additional context
Is your feature request related to a problem? Please describe.
One of the core features of our dating app is allowing users to sign up for an account. This guarantees a user's data is persisted for personalized experience & data analytics.
Are there any related issues? Please list all of them.
Describe the solution you'd like
Acceptance criteria
Describe alternatives you've considered
N/A
Additional context
Is your feature request related to a problem? Please describe.
We need a Navbar so users can navigate to different pages on the website
Are there any related issues? Please list all of them.
N/A
Describe the solution you'd like
Use React Router to link to other pages (e.g. Match (main page), Profile, Chat).
Acceptance criteria
Describe alternatives you've considered
N/A
Additional context
Is your feature request related to a problem? Please describe.
As a dating app user, I want to get suggestions for any potential parters on this app. These partners should match my basic requirements (e.g. gender orientation, distance, age group). It'd be wonderful if they are compatible with me (e.g. shared interests, values, and relationship goals). Most importantly, I'd prefer getting matches than no matches at all.
Are there any related issues? Please list all of them.
Describe the solution you'd like
Some algorithms to be considered are: Gale-Shapley algorithm & Elo-rating algorithm.
In order to meet a user's basic requirements, potential partners must:
To maximize compatibility, potential partners should like the user and have as many similarities with the user as possible.
Acceptance criteria
Describe alternatives you've considered
Suggest random people to the user for a diverse experience 😛
Additional context
partners that fit a user's preference ↩
This issue is to remind everyone that, sometimes, you should take a break.
Because most of our team members have other commitments outside this project, being overloaded with work is inevitable. If you have too much work on your hands, please comment on this issue or bring it up on our Discord server. If you have personal problems that can affect your performance and progress, please also let the team know. As long as we know what the problem is, we can figure out the solution together. (Feel free to rant on #off-topic)
Let's drop this project Let's work together to get this project done.
Use GitHub existing templates for:
Describe the bug
Because we decided to use Apollo Client GraphQL, Redux is no longer necessary as Redux and Apollo Client will help us to achieve the same thing.
However, it can be done via this
Set up the folder structure + source code + configuration + (anything else) for the frontend
directory.
Since we use React, there are templates and code generator tools to streamline this task.
Approved by: @minhhang107 @mqnguyen5 @oliver-pham @hlavu
Is your feature request related to a problem? Please describe.
We need profile cards to display matches' profile for user to find the best match.
Are there any related issues? Please list all of them.
Describe the solution you'd like
Acceptance criteria
Describe alternatives you've considered
N/A
Additional context
Final SRS: https://seneca.sharepoint.com/:w:/s/PRJ566NAAFall2021-Team04/EUqySSjxSqJLiVd2OyWDEAABJI8vfO567WsHBpPZmSQWCg?e=FJcwSh
Figma Design: https://www.figma.com/file/D6OdyoGg8cbL1hAScPEsYI/PRJ-Diagrams
Is your feature request related to a problem? Please describe.
If an account owner forgets their password, they can reset it anytime by providing their email.
Are there any related issues? Please list all of them.
Describe the solution you'd like
Acceptance criteria
Describe alternatives you've considered
Additional context
Is your feature request related to a problem? Please describe.
I want to add more details about how a new dev can get started contributing to the project.
Is your feature request related to a problem? Please describe.
We need an interface for the game play. It should include the following:
Are there any related issues? Please list all of them.
BE: #248 #289
Describe the solution you'd like
Acceptance criteria
Describe alternatives you've considered
N/A
Additional context
N/A
We should craft a template for every pull request beforehand. This should save us more time on deciding what to write in a PR description.
Some suggestions:
About PR desc we should provide what have been done, which packages have been used and a screenshot (if necessary) - hlavu
The title should describe the area tackled by the PR and what it wants to add to our app. For instance,
[WIP] match: Prototype matching algorithm
informs that the PR solves an issue in the matching algorithm but it's a work-in-progress. - oliver-pham
The title might need the type as well (eg: feature, bugfix, refactor, ...)
As for the description, we should also include related issues - minhhang107
Is your feature request related to a problem? Please describe.
Inside the "Message" page, we have a section display the list of the user matched partners. This section would contains several elements, from the search input to look up one or many partners, to a card which display the partners' name, profile image, and a preview of the recent message the user had with them.
Are there any related issues? Please list all of them.
Describe the solution you'd like
Acceptance criteria
Describe alternatives you've considered
N/A
Additional context
Is your feature request related to a problem? Please describe.
Our application needs a landing page to attract and guide our potential users.
Describe the solution you'd like
Acceptance Criteria
Describe alternatives you've considered
We don't have any existing page, so the only option is to code this from scratch.
Additional context
Is your feature request related to a problem? Please describe.
We need an Edit Mode
so users can modify the info displayed on their Profile Page
Question: when user logs in, should they be redirected to this Edit
page or the Profile
page? On registration we don't collect their hobbies and preferences. It might be better to go to Edit
so they can complete the profile before we calculate match point
Are there any related issues? Please list all of them.
Describe the solution you'd like
Acceptance criteria
Save
Profile Page
after saving or canceling changesDescribe alternatives you've considered
N/A
Additional context
Is your feature request related to a problem? Please describe.
We need a dashboard for admin to solve report requests sending from users.
Are there any related issues? Please list all of them.
Describe the solution you'd like
Acceptance criteria
Describe alternatives you've considered
N/A
Additional context
Final SRS: https://seneca.sharepoint.com/:w:/s/PRJ566NAAFall2021-Team04/EUqySSjxSqJLiVd2OyWDEAABJI8vfO567WsHBpPZmSQWCg?e=FJcwSh
Figma Design: https://www.figma.com/file/D6OdyoGg8cbL1hAScPEsYI/PRJ-Diagrams
Is your feature request related to a problem? Please describe.
We need a way to let users send game request. The logic is as follows:
Game
button to access the gameAre there any related issues? Please list all of them.
#49
#61
backend
Describe the solution you'd like
Acceptance criteria
Game
button on Chat
pageDescribe alternatives you've considered
N/A
Additional context
Mock up design: https://www.figma.com/file/D6OdyoGg8cbL1hAScPEsYI/PRJ-Diagrams?node-id=404%3A825
Is your feature request related to a problem? Please describe.
Our app has lots of pop up dialogs so it'd be great to have a popup card component for reusability
Are there any related issues? Please list all of them.
Describe the solution you'd like
Acceptance criteria
X
button at top right cornerDescribe alternatives you've considered
Another option is to include the overlay in this component
Inspiration here:
https://dev.to/g10dra/create-custom-popup-component-in-react-1o18
Additional context
Full mock-up design: https://www.figma.com/file/D6OdyoGg8cbL1hAScPEsYI/PRJ-Diagrams?node-id=402%3A736
Is your feature request related to a problem? Please describe.
After completing the game, users should be able to see the game results by hitting Game
button on chat window. In the game results, we need to display:
Are there any related issues? Please list all of them.
backend
Describe the solution you'd like
Acceptance criteria
Describe alternatives you've considered
N/A
Additional context
Mock up design: https://www.figma.com/file/D6OdyoGg8cbL1hAScPEsYI/PRJ-Diagrams?node-id=151%3A1117
Is your feature request related to a problem? Please describe.
Our application needs a signup form for users to create their accounts.
Are there any related issues? Please list all of them.
Describe the solution you'd like
Acceptance criteria
Describe alternatives you've considered
Additional context
Is your feature request related to a problem? Please describe.
We need a match page for user to send/reject a match request to/from another user.
Are there any related issues? Please list all of them.
Describe the solution you'd like
Acceptance criteria
Describe alternatives you've considered
N/A
Additional context
Final SRS: https://seneca.sharepoint.com/:w:/s/PRJ566NAAFall2021-Team04/EUqySSjxSqJLiVd2OyWDEAABJI8vfO567WsHBpPZmSQWCg?e=FJcwSh
Figma Design: https://www.figma.com/file/D6OdyoGg8cbL1hAScPEsYI/PRJ-Diagrams
Is your feature request related to a problem? Please describe.
As a user, I want to (re)view my profile on the dating app. I should also be able to view others' profiles.
A profile must include:
Are there any related issues? Please list all of them.
Describe the solution you'd like
Acceptance criteria
Describe alternatives you've considered
N/A
Additional context
Is your feature request related to a problem? Please describe.
Our application needs a sign in form for users to login Seeksi app.
Are there any related issues? Please list all of them.
Describe the solution you'd like
Acceptance criteria
Describe the solution you'd like
Describe alternatives you've considered
Additional context
Is your feature request related to a problem? Please describe.
After the user is matched against several potential partners, let us create a page where he/she can not only view/search the list of matches but also communicate with them as well.
Are there any related issues? Please list all of them.
Describe the solution you'd like
Acceptance criteria
Describe alternatives you've considered
N/A
Additional context
These are the technologies we're gonna use for our app:
document api routes for client side swagger
Is your feature request related to a problem? Please describe.
The application is designed with a bunch of input fields for users to input/edit their information. For frontend developers' convenience, the input component is created for reuse during development process.
Are there any related issues? Please list all of them.
Describe the solution you'd like
(Optional)
(Optional)
(Optional)
Acceptance criteria
Hobbies
input) should show and let users select multiple optionsDescribe the solution you'd like
props
from its parent component.props
can be field's width, field's height, input's type, input's value, events and etc...Describe alternatives you've considered
Additional context
The recent PR (#16) broke the GitHub issue templates option. (Oops, my bad guys)
New issue
buttonGitHub should show the configured issue templates
Is your feature request related to a problem? Please describe.
The application is designed with a bunch of buttons to support users' interaction. For frontend developers' convenience, the button component is created for reuse during development process.
Are there any related issues? Please list all of them.
Describe the solution you'd like
Acceptance criteria
Describe the solution you'd like
props
from its parent component.props
can be button's color, button's text, button's width/height, button's border radius, etc...Describe alternatives you've considered
Additional context
Set up the folder structure + source code + configuration + (anything else) for thebackend
directory.
Let's find templates and code generator tools to streamline this task.
Let's research and refine our workflow. The current workflow is:
Use appropriate labels:
feature
, bug
, refactor
, question
)?backend
, frontend
, undefined)?priority:low
, priority:medium
, priority:high
)?Then, add the issue to Seek Projects (Click on Projects
section in the right panel and select Seeksi
). The issue should be automatically added to our project's Backlog.
In our Friday weekly meeting, we'll discuss the issue from Backlog. We'll discuss the difficulty of the issues in each sprint and decide on which label to tag for its difficulty (difficulty:easy
, difficulty:medium
, difficulty:hard
). This should ensure we are on the same page on the effort and time spent on each issue.
If we decide to do a particular issue, it will be moved to To Do and tagged priority:medium
. Otherwise, it will be tagged wontfix
.
Once you start working on an issue, assign yourself to it and move it to In progress.
If you encounter any problem that needs everyone's attention (but can't wait until Friday), let the team know. We can discuss it asynchronously or in our weekly backup meeting (on Wednesdays).
Once you are done with the issue, move it to Code review. Assign or mention any reviewer if necessary.
Once all the reviewers approve of a pull request, merge it. The issue should automatically be closed and moved to Done.
Is your feature request related to a problem? Please describe.
As a user, I want to be able to edit my personal information, displayed on my profile page, and my preferences. Additionally, I can update my avatar, remove/upload my photos.
Are there any related issues? Please list all of them.
Describe the solution you'd like
Acceptance criteria
Describe alternatives you've considered
Don't let users edit their profiles 😬
Additional context
Note
User can find information about Seeksi on the landing page
User can create an account from the landing page
User can login using their account
User can reset their password
User will be able to view their own profile
User can upload photo(s) to their profile
User can remove photo(s) from their profile
User can delete their account
User can view other users’ profile cards and profile pages
User can send a match request to another user
User can reject another user
User can unmatch another user
User can submit a report with details
User can cancel a report request
User can choose to send message via text, photo, or choose from a library of opening lines when starting a conversation,
User can send text or photo messages to their partner inside the chat room
User can view the messages (either text or photo) sent by the other partner
User can view all messages (either text or photo) when opening the conversation window
User can send and receive a game request to another user
User can accept or reject game request sent by another user
User can select “True” or “False” to questions when they are in the game
User can quit at any time during the game
User can view the results once the game is completed
User can see the number of common answers
Common answers are highlighted
Admin has access to admin dashboard
Admin can view users’ reports
Admin can ban user
Is your feature request related to a problem? Please describe.
I'd like to add a script generator :)
Is your feature request related to a problem? Please describe.
We need a profile page to display user profile.
Note that when user is viewing their own profile, there MUST be Edit Profile
button, otherwise the button is hidden (this might need further discussion)
Are there any related issues? Please list all of them.
Describe the solution you'd like
Use a React library (e.g. React lightgallery) to display images
Acceptance criteria
Profile
button on nav barEdit Profile Page
when clicking Edit Profile
button (can be tested later when Edit Profile Page
is finished)Describe alternatives you've considered
N/A
Additional context
Final SRS: https://seneca.sharepoint.com/:w:/s/PRJ566NAAFall2021-Team04/EUqySSjxSqJLiVd2OyWDEAABJI8vfO567WsHBpPZmSQWCg?e=FJcwSh
Figma Design: https://www.figma.com/file/D6OdyoGg8cbL1hAScPEsYI/PRJ-Diagrams
For example, a user JSON object looks like this:
{
"userId":{
"$oid":"61e75f2cfc13ae336b000013"
},
"firstName":"Ernest",
"lastName":"Lodemann",
"email":"[email protected]",
"dob":{
"$date":"2016-04-24T21:30:43.000Z"
},
"sex":"Female",
"location":{
"city":"Shatian",
"province":"BC",
"longitude":113.618216,
"latitude":22.919769
},
"hobbies":[
"Robot combat",
"Origami",
"Collecting"
],
"preference":{
"gender":"Gender Nonconforming",
"distance":78,
"minAge":15,
"maxAge":6,
"longTerm":false,
"shortTerm":true
},
"avatar":{
"origin":"http://dummyimage.com/210x100.png/cc0000/ffffff",
"small":"http://dummyimage.com/205x100.png/5fa2dd/ffffff",
"medium":"http://dummyimage.com/182x100.png/5fa2dd/ffffff",
"large":"http://dummyimage.com/114x100.png/ff4444/ffffff"
},
"photo":[
{
"origin":"http://dummyimage.com/209x100.png/5fa2dd/ffffff",
"small":"http://dummyimage.com/108x100.png/ff4444/ffffff",
"medium":"http://dummyimage.com/238x100.png/5fa2dd/ffffff",
"large":"http://dummyimage.com/172x100.png/ff4444/ffffff"
},
{
"origin":"http://dummyimage.com/170x100.png/ff4444/ffffff",
"small":"http://dummyimage.com/131x100.png/ff4444/ffffff",
"medium":"http://dummyimage.com/116x100.png/cc0000/ffffff",
"large":"http://dummyimage.com/224x100.png/dddddd/000000"
},
{
"origin":"http://dummyimage.com/218x100.png/cc0000/ffffff",
"small":"http://dummyimage.com/173x100.png/dddddd/000000",
"medium":"http://dummyimage.com/240x100.png/5fa2dd/ffffff",
"large":"http://dummyimage.com/222x100.png/ff4444/ffffff"
},
{
"origin":"http://dummyimage.com/125x100.png/ff4444/ffffff",
"small":"http://dummyimage.com/104x100.png/ff4444/ffffff",
"medium":"http://dummyimage.com/139x100.png/dddddd/000000",
"large":"http://dummyimage.com/115x100.png/dddddd/000000"
},
{
"origin":"http://dummyimage.com/220x100.png/ff4444/ffffff",
"small":"http://dummyimage.com/136x100.png/ff4444/ffffff",
"medium":"http://dummyimage.com/245x100.png/ff4444/ffffff",
"large":"http://dummyimage.com/132x100.png/5fa2dd/ffffff"
}
],
"bio":"harness magnetic web-readiness",
"password":"olSBfI"
}
Is your feature request related to a problem? Please describe.
In order for the "Message" page to be completed, we need to implement the logic for sending messages from one user to the other
Are there any related issues? Please list all of them.
Describe the solution you'd like
N/A (Still thinking)
Acceptance criteria
Describe alternatives you've considered
N/A
Additional context
Is your feature request related to a problem? Please describe.
When a partner sends a game request, user can choose to accept or decline the request.
Are there any related issues? Please list all of them.
#50
#59
Related thing
Display game notification for users
Describe the solution you'd like
Acceptance criteria
Describe alternatives you've considered
We can put the game request in the form of a text message in the conversation
eg: Dustin wants to play game with you. Click to view.
When user clicks on the message, the popup above will show up and user can make their decision.
Additional context
Mock up design: https://www.figma.com/file/D6OdyoGg8cbL1hAScPEsYI/PRJ-Diagrams?node-id=431%3A733
Is your feature request related to a problem? Please describe.
Due to the safety of users, our application need the report form to encourage user to report any suspicious users or behavior.
Are there any related issues? Please list all of them.
Describe the solution you'd like
Acceptance criteria
Match
page and Chat
pageDescribe alternatives you've considered
N/A
Additional context
Final SRS: https://seneca.sharepoint.com/:w:/s/PRJ566NAAFall2021-Team04/EUqySSjxSqJLiVd2OyWDEAABJI8vfO567WsHBpPZmSQWCg?e=FJcwSh
Figma Design: https://www.figma.com/file/D6OdyoGg8cbL1hAScPEsYI/PRJ-Diagrams
Is your feature request related to a problem? Please describe.
We should ensure that only account owners can access their own accounts.
Are there any related issues? Please list all of them.
Describe the solution you'd like
There are various methods of authentication (e.g. biometric, multi-factor, token-based), but we should go with password-based authentication for now.
Acceptance criteria
Describe alternatives you've considered
N/A
Additional context
There are conventions to enhance communication, collaboration, and productivity. Before we start developing our project, I think we should decide on a few conventions below:
I think these naming conventions are a great start. Maybe we can use them.
Feel free to create a new issue and suggest a convention for each item. This issue is used for tracking all the conventions to be implemented.
There are two approaches to this:
type User {
userID: String
first_name: String
last_name: String
email: String
bio: String
password: String
dob: Date
sex: String
location: Location
hobbies: [String]
preference: Preference
avatar: Image
photo: [Image]
}
We can implement both, but with the time constraint, we should prioritize either of them.
Approved by: @tuanthanh2067 @hlavu @mqnguyen5 @oliver-pham
Our templates may not be refined to our needs. Let's research, find, and suggest a better template here.
Current Feature request template:
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
Current Bug report template:
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots**
If applicable, add screenshots to help explain your problem.
**Desktop (please complete the following information):**
- OS: [e.g. iOS]
- Browser [e.g. chrome, safari]
- Version [e.g. 22]
**Smartphone (please complete the following information):**
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- Browser [e.g. stock browser, safari]
- Version [e.g. 22]
**Additional context**
Add any other context about the problem here.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.