-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Docs] Project Requirements #3
Comments
User ServiceAuthenticationFunctional Requirements
Non-functional Requirements
Progress
History (Stretch Goal)Functional Requirements
Non-functional Requirements
Progress
DiagramsAuthenticationHistory |
Matching ServiceFunctional Requirements
Non-functional Requirements
Progress
Stretch Goals
Diagram(s)Finding a matchNo match found, joining the queueMatch found, joining roomUser is already in a room |
Question ServiceThe service is linked to
Functional Requirements
Non-functional Requirements
Detailed DesignAddressing FR and NFR
Potential Issues
SchemasUpdated as of: 25th Septemeber 2022 This is based of what LeetCode returns, for the actual schema that was applied, refer to QuestionSummary
QuestionContent
GraphQL QueriesUpdated as of: 25th Septemeber 2022 All questionsquery psetQuestionList {
psetQuestionList: questionList(
categorySlug: ""
limit: -1
skip: 0
filters: {}
) {
total: totalNum
questions: data {
acRate
difficulty
paidOnly: isPaidOnly
title
titleSlug
topicTags {
slug
}
}
}
} Question of the dayquery questionOfToday {
activeDailyCodingChallengeQuestion {
question {
acRate
difficulty
paidOnly: isPaidOnly
title
titleSlug
topicTags {
slug
}
hasSolution
hasVideoSolution
}
}
} Get question from slugquery getQuestionDetail($titleSlug: String!) {
question(titleSlug: $titleSlug) {
content
hints
topicTags {
name
}
}
}
# var
# {
# "titleSlug": "two-sum"
# } Potential upgrades
Progress
Diagram |
COLLABORATION SERVICE MERGED UNDER ROOM SERVICEHiddenCollaboration ServiceFunctional Requirements
Non-functional Requirements
Progress
|
User InterfaceDesign DecisionsWe prioritise XYZ and as such did the following:
HiddenFunctional RequirementsNon-functional RequirementsProgress
|
COMMUNICATION SERVICE MERGED UNDER ROOM SERVICEHiddenCommunication ServiceFunctional Requirements
Non-functional Requirements
Progress
|
HISTORY SERVICE MERGED UNDER USER SERVICEHiddenLearning Pathway/History ServiceFunctional Requirements
Non-functional Requirements
ProgressBackend:
Frontend:
|
Room ServiceRoomRooms serve the purpose of containing the question content from the question service, and host the collaboration and communication service. Functional Requirements
Non-functional requirements
Stretch goal
Collaboration ServiceThis service mainly covers the ability to work collaboratively on the same document as the partner's. Functional Requirements
Non-functional Requirements
Communication ServiceWhile working on the same document, users would need a way to communicate their ideas/suggestions across to each other. Collaboration service can function in place of a chat service through comment blocks but does not simulate a proper interview/discussion and is no where near as interactive. Functional Requirements
Non-functional Requirements
Progress
|
THIS ISSUE SERVES AS A DRAFT FOR PROJECT REPORT.
Decisions
Tech stack
Deployment
For the development and demonstration of the application, we would focus on running the service locally. Once all the features are up and running nearer and as we approach the deadline, we would ideally dockerise some of the microservices and deploy it as follows:
Frontend
Backend
User service
Planetscale -- Hosted SQL database.
Matching service
Utilise Redis' namespace as the different types of "queues" (PubSub topics).
Question service
Planetscale to allow for relational queries/mappings, Redis for quick queries.
Design
We will prioritise functionality first before user experience. Simply put, the team would work on getting a functional version up first before improving on the UI elements that would improve the user experience.
Diagrams
All of our diagrams are stored in this Gist.
Architecture
Simplified
Specifics
User flow
Specifics
Dashboard
users can navigate access the pages that are immediately a child toDashboard
as there would be a navigation bar.Locked room page with past session
can accessMatching page
directly without needing to go back toDashboard
.log out
and would be directed back to the start of the user flow.The text was updated successfully, but these errors were encountered: