Closed ersoykadir closed 1 year ago
We have implemented the database schema for text annotations. It's compliant with the W3C Recommendation of Web Annotation Data Model. We have implemented API functions for text annotation creation, retrieval, update and deletion. We have implemented text annotations for our web front-end, leveraging an annotation library. We have provided a distinct annotation database server in order to comply with the W3C Recommendation of Web Annotation Protocol.
In April 2020, Claire is at home due to the COVID-19 pandemic. She had learnt about the platform BUcademy from a friend and decided to give it a go. She joins the platform and includes her interests in her profile.
When she opens the platform as a user for the first time, she sees a list of recommended spaces based on her interests but she wants to take on something that can be done to pass the time and also improve her skills, not restricted to her interests. She searches for "something to do at home" and finds a learning space on how to bake a cake. She joins the space and sees its topics and resources. She opens up a resource called "Tricks not to burn the cake" and reads its body. She clicks on a button to create a new note for herself, summarizing what she learnt from the resource.
She goes on to read another resource called "How to make the cake look good". She follows the steps that night and posts the picture of the cake on Instagram. She annotates the ending sentence of the resource body, which is "Enjoy!", with a text annotation, including her Instagram post as the body of the annotation.
After a few days, while Claire is browsing the platform, she sees a notification of her friend's creation of an online event called "Zoom Bake Off". She joins the event and attends it at the scheduled time.
We have created a web application that serves as a learning platform. The application has a server side and also client sides for both web and mobile. Most of the features have required all the sides to work together. This work includes meetings, discussions, and coding.
The application allows users to sign up. The back-end has provided database schemas for users and API functions for CRUD operations on it. The front-end and mobile sides have implemented pages for users to sign up.
The database schemas for users are such that users can have interests. The back-end has provided API functions for users to add and remove interests. The front-end and mobile sides have implemented pages for users to add and remove interests.
There is a recommendation system that recommends spaces to users based on their interests. The back-end has provided API functions for the recommendation system. The front-end and mobile sides have implemented sections for users to see the recommended spaces on their "My Spaces" page and home page, respectively. The recommendation system uses an API from Datamuse to find semantically similar words to the user's interests, then searches for spaces that contain these words in their titles, descriptions, or tags.
The application allows users to search for existent learning spaces. For this to work, the back-end has provided database schemas for spaces and API functions for CRUD operations on it. The front-end and mobile sides have implemented pages for users to search for spaces and see their details. This search is done based on text searches of space titles, descriptions, and tags, as well as semantically. For the semantic search, we are using a pretrained model to find relevances between the search query and the space titles and descriptions.
The back-end has provided database schemas for notes and API functions for CRUD operations on it. The front-end and mobile sides have implemented pages for users to create, read, update, and delete notes. The notes are associated with resources.
The back-end has provided database schemas for text annotations and API functions for CRUD operations on it. We made sure that the database schema has compliance with the W3C Recommendation of Web Annotation Data Model. We have provided a distinct annotation database server in order to comply with the W3C Recommendation of Web Annotation Protocol. The front-end have implemented text annotations in resource pages for users to create, read, update, and delete text annotations.
The back-end has provided API functions for the notification system, such as the getFeed
function. They have also provided API functions for users to follow and unfollow other users, which is used by the notification system. When a user creates a discussion, an event, a space, a topic or a resource, or joins a space, the notification system sends a notification to all the users that follow the user. The front-end and mobile sides have implemented sections for users to see their feeds of what their followed users have done on the platform. They have also implemented buttons for users to follow and unfollow other users.
The back-end has provided database schemas for events and API functions for CRUD operations on it. We made sure that the database schema has compliance with the W3C Recommendation of Geolocation API.
In CmpE 352, we spent way too many weeks to specify requirements, discussed different features and use case scenarios. Requirements that we finalized after those long discussions have a lot of features that we could not implement simply because we did not have enough time. We believed that we can complete all of those features until the very last weeks of the lecture. In December 18 we finally decided not to implement some features in the requirements.
We have spent almost a year refine those requirements and it was sad seeing all of those meetings go to waste. We did not have much experience working with the team, or any team, so we thought we could complete all of the implementation as well as tests and reports. If we could go back in time, we would remove half of the features and spent more time on perfecting the features that we have.
Working in a team with 12 people is not an easy job. It took a couple months to set the pace and get used to dividing tasks between teammates efficiently. Moreover, we spent first 1 - 1.5 months to learn new technologies and frameworks we have not used before. When we sum up all of factors, we can see that we have succeded a tremendous achievement by finishing the project in time.
Requirement | Status |
---|---|
## User Requirements | |
1.1 Account Features | |
-- 1.1.1 Registration | |
1.1.1.1 | completed |
1.1.1.1.1. | completed |
1.1.1.2. | not started |
-- 1.1.2 Log In | |
1.1.2.1. | completed |
1.1.2.2. | not started |
1.1.2.3. | not started |
1.1.2.4. | not started |
1.1.2.4. | not started |
-- 1.1.3 Log Out | |
1.1.3.1 | completed |
-- 1.2. Profile | |
1.2.1. | completed |
1.2.2. | completed |
-- 1.3. User Actions | |
1.3.1 | not_started |
1.3.1.1 | not_started |
1.3.2. | completed |
1.3.3. | completed |
1.3.3.1. | completed |
1.3.3.2. | completed |
1.3.4.1. | completed |
1.3.4.2. | completed |
1.3.4.3. | completed |
1.3.4.3.1. | not_started |
1.3.4.3.2. | completed |
1.3.4.4 | completed |
1.3.4.5 | completed |
1.3.4.6 | completed |
1.3.5 | completed |
1.3.6 (with its subtopics) | completed |
1.3.7 | completed |
1.3.8 (with its subtopics) | completed(except 1.3.8.1 not started) |
1.3.9 | not_started |
1.3.10 | not_started |
1.3.11 | completed |
1.3.12 | completed |
1.3.13 | completed |
1.3.14 | completed |
1.3.15. (with its subtopics) | completed |
-- 1.4. Admin User (with its subtopics) | not_started |
## System Requirements | |
-- 2.1. Profile Page | |
2.1.2.1. Bio | completed |
2.1.1 | completed |
2.1.2.2. Achievements (with its subsections) | not started |
2.1.2.3. Interests (with its subsections) | completed |
2.1.2.2. Activities (with its subsections) | completed |
2.1.2.5. Monitoring (with its subsections) | not started |
2.1.2.6. Knowledge (with its subsections) | completed |
2.1.2.7. Rating (with its subsections) | completed |
2.1.2.8. Notes (with its subsections) | completed |
2.1.3. Following (with its subsections) | completed |
2.1.4. Privacy (with its subsections) | not started |
-- 2.2. Communication Channel | |
2.2.1 | completed |
2.2.2 | completed |
2.2.2.1 | not_started |
2.2.3 | not_started |
-- 2.3. Note Taking | completed |
2.3.1 | completed |
2.3.2 | not_started |
2.3.3 | completed |
-- 2.4. Recommendations | |
2.4.1. | completed |
2.4.1.1. | completed |
-- 2.5. Search Engine | |
2.5.1. | completed |
2.5.2. | completed |
2.5.3. | completed |
2.5.4. | in progress |
2.5.5. | not_started |
2.5.6. | not_started |
2.5.7. (with its subtopics) | not started (expect 2.5.7.3 completed ) |
-- 2.6. Annotation | |
2.6.1 | completed (expect image annotation) |
2.6.1.1 | completed |
2.6.2 | not_started |
2.6.3 | completed |
2.6.4 | completed |
-- 2.7. Notifications(with its subtopics) | completed (expect push notifications) |
## Non-Functional Requirements | |
-- 3.1. Accessibility and Availability | completed |
-- 3.2. Security (with its subtopics) | completed (except 3.2.5 not_started ) |
-- 3.3. Privacy(with its subtopics) | completed (except 3.3.6[with its subtopics] not_started ) |
-- 3.4. Performance and Reliability | |
3.4.1. | completed |
3.4.2. | completed |
3.4.3. | completed |
3.4.4 | completed |
3.4.5 | completed |
3.4.6 | completed |
-- 3.5. Standards (with its subtopics) | completed |
Our annotations fit the W3C standard of Web Annotation Data Model. We constructed a new database that is for annotation purposes only after milestone 2, in order to make our annotations fully fit the W3C standards. For geolocation, we have used longitudes and latitudes in our endpoints which are used to show/set event locations on a map in order to fit the W3C standards.
Classes
Services https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/locator.dart
View https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/intro/intro.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/main.dart
Classes https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/user/login.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/user/login.g.dart
Services https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/user_service.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/locator.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/persistence_service.dart
View https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/login/login.dart
Classes https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/user/register.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/user/register.g.dart
Services https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/user_service.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/locator.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/persistence_service.dart
View https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/login/registration.dart
Classes https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/course/course.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/course/course.g.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/user/user.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/user/user.g.dart
Resources https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/resources/constants.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/resources/text_styles.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/resources/custom_colors.dart
Services https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/locator.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/navigator_service.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/course_service.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/persistence_service.dart
View https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/home/appbar.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/home/course_tile.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/home/homepage.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/home/search_bar.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/widgets/profile_picture.dart
Classes https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/course/course.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/course/course.g.dart
Services https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/course_service.dart
View https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/home/search_bar.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/home/homepage.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/home/appbar.dart
Classes https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/course/course.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/course/course.g.dart
Services https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/course_service.dart
View https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/course/coursepage.dart
Classes https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/course/course.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/course/course.g.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/topic/topic.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/topic/topic.g.dart
Services https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/content_service.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/course_service.dart
View https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/course/coursepage.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/course/topic_tile.dart
Classes https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/topic/topic.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/topic/topic.g.dart
View https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/course/topic/create_topic.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/course/topic_tile.dart
Classes https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/topic/topic.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/topic/topic.g.dart
Services https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/content_service.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/course_service.dart
View https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/course/coursepage.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/course/topic_tile.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/course/topic/long_press_dialog.dart
Classes https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/topic/topic.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/topic/topic.g.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/resource/resource.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/resource/resource.g.dart
View https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/topic/topicpage.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/topic/resource_tile.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/course/add_button.dart
Classes https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/topic/topic.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/topic/topic.g.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/resource/resource.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/resource/resource.g.dart
View https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/course/add_resource_page.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/widgets/markdown_input.dart
Classes https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/resource/resource.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/resource/resource.g.dart
View https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/resource/edit_button.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/resource/edit_resource_page.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/resource/resourcepage.dart
Classes https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/resource/resource.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/resource/resource.g.dart
Services
View https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/topic/long_press_dialog.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/topic/resource_tile.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/topic/topicpage.dart
Classes https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/resource/resource.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/resource/resource.g.dart
View https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/topic/long_press_dialog.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/topic/resource_tile.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/topic/topicpage.dart
Classes https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/resource/resource.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/resource/resource.g.dart
View https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/resource/edit_button.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/resource/edit_resource_page.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/resource/resourcepage.dart
Classes https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/note/note.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/note/note.g.dart
Services https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/note_service.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/content_service.dart
View https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/resource/resourcepage.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/course/note/create_note_page.dart
Classes https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/event/event.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/event/event.g.dart
Services https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/event_service.dart
View https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/course/coursepage.dart
Classes https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/event/event.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/event/event.g.dart
Services https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/event_service.dart
Classes https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/event/event.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/event/event.g.dart
Services https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/event_service.dart
Classes https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/discussion/discussion.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/discussion/discussion.g.dart
Services https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/discussion_service.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/locator.dart
View https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/course/coursepage.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/course/discussion/discussion_view.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/course/discussion/comment_tile.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/widgets/markdown_input.dart
Classes https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/discussion/discussion.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/discussion/discussion.g.dart
Services https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/discussion_service.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/locator.dart
View https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/course/coursepage.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/course/discussion/discussion_view.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/course/discussion/create_discussion.dart
Classes https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/discussion/comment.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/discussion/comment.g.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/discussion/discussion.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/discussion/discussion.g.dart
Services https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/discussion_service.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/locator.dart
View https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/course/discussion/discussion_view.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/course/discussion/comment_tile.dart
Classes https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/discussion/discussion.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/discussion/discussion.g.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/discussion/comment.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/discussion/comment.g.dart
Services https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/discussion_service.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/locator.dart
View https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/course/discussion/discussion_view.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/course/discussion/comment_tile.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/widgets/markdown_input.dart
Classes https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/profile/profile.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/profile/profile.g.dart
Services https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/profile_service.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/navigator_service.dart
View https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/profile/profile.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/widgets/profile_picture.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/dashboard_view.dart
Classes https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/profile/profile.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/profile/profile.g.dart
Services https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/profile_service.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/navigator_service.dart
View https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/profile/profile.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/widgets/profile_picture.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/dashboard_view.dart
Classes https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/profile/profile.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/profile/profile.g.dart
Services https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/profile_service.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/navigator_service.dart
View https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/profile/profile.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/widgets/profile_picture.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/dashboard_view.dart
Classes https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/profile/profile.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/profile/profile.g.dart
Services https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/profile_service.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/navigator_service.dart
View https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/profile/profile.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/profile/edit_profile.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/widgets/profile_picture.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/dashboard_view.dart
Classes https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/feed/activity.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/classes/feed/activity.g.dart
Services https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/feed_service.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/services/navigator_service.dart
View https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/feed/feed.dart https://github.com/bounswe/bounswe2022group3/blob/master/app/mobile/lib/view/widgets/profile_picture.dart
As a team, we aspire to perfect every aspect of the project. That leads to a lot of discussion about each team's work, such as deciding how the recommendation system would work or design of space pages on web and so on. At first milestone, we were ahead of the plan as we had completed the design of spaces, profiles, and main pages for both mobile and web applications.
After the milestone 1, we decided to let subteams decide their processes and designsmore independently. That led us having shorter weekly meetings as whole team, we only shared updates of our process and the interdependencies about funcitonality. That extra time allowed us to implement our tasks faster.
Other than those, we decided to left out some functionality we proposed last semester after the second milestone. They are :
Most of the functionality we left out was not core to the application. Deciding to not implement those allowed us to focus on what we are already doing.
Reflections:
Leading up to the demo, we were a lot more consistent in our work as opposed to other Milestones. Workload was divided more effectively over time. We also made sure to prioritize our requirements better, we asked our customer what held more value in their eyes and devoted more of our time and resources to those requirements.
We have realized our way of presenting two interfaces at the same time in the Milestone 2 demo was mostly successful so we have crafted our scenarios according to that. We had a few new major features since the last demo, such as notifications, note sharing and sorting, recommendations based on interests and profile picture uploading. So we designed our demo around these features. One thing that could have gone better in the demo was that we had some delay when performing the search in the web interface. After the demo we have found this issue was caused because we were making api calls to the search endpoint with every keystroke with about 0.3 secs of debounce, but the response time was closer to 3-4 in the best case scenario, due to the size of the language model used. So a better practice would have been performing search after the input box was unfocused and performing tag based search if language model was unviable.
All in all we had a pretty well received demo that has effectively showed the work we had done but we could have tested our app better to find the search response time issue ahead of time.
Register https://github.com/bounswe/bounswe2022group3/blob/master/app/client/pages/user/register.js
Login https://github.com/bounswe/bounswe2022group3/blob/master/app/client/pages/user/login.js
Profile https://github.com/bounswe/bounswe2022group3/blob/master/app/client/pages/user/%5Buser_id%5D.js
We have achieved the really essential features of the system. However, there are some features and requirements that we couldn't match until the final milestone presentation. All in all, as a team, we believe that we did a good job, especially when considering our workloads outside of this course.
Most of the features were already implemented in Milestone 2, after the milestone 2; we have synchronized mobile and frontend applications in terms of the features they had. Some of the already implemented features on mobile were brought to frontend and vice versa. Outside of this synchronization, we have implemented semantic search and recommendation system. We also created a seperate and publicly accessible annotation server and database, as requested. Also, implemented note sharing with deeplinks. Overall integration of mobile and frontend became much more smoother.
All of the server deployments worked reliably, except for the server that hosted semantic search. Due to high load and cpu intensive ML model, it failed to showcase what the semantic search is truly capable of.
Deliverable | Status | Last Updated |
---|---|---|
Software Requirements Specification | Completed | 04.12.2022 |
Class Diagram | Completed | 04.11.2022 |
Use Case Diagram | Completed | 31.10.2022 |
Sequence Diagrams | Completed | 15.04.2022 |
Scenario and Mockup 1 | Completed | 31.10.2022 |
Scenario and Mockup 2 | Completed | 31.10.2022 |
Scenario and Mockup 3 | Completed | 31.10.2022 |
API Specifications | Completed | 22.10.2022 |
Project Plan | Completed | 1.11.2022 |
BUcademyAPI Documentation | Completed | 02.01.2023 |
System Manual | Completed | 02.01.2023 |
Individual Final Milestone Review | Completed | 02.01.2023 |
Final Milestone Group Review | Completed | 02.01.2023 |
Release: 0.9.0 customer-presentation-3
Group 3 Cmpe451 2022 Fall Final Release API: http://api.bucademy.tk/ Annotation API: http://bucademy.tk/annotation APP: https://bucademy.tk/
Well Done! The reports are visible in repo under deliverables/CMPE451_Customer_Presentation_Milestone_3
Issue
We need to prepare our group report for Final Milestone.
Task(s)
Deliverables
491
Deliverable(s)
Acceptance Criteria
/deliverables/CMPE451_Customer_Presentation_Milestone_3
repository.Deadline of the issue
02.01.2023 @19:00
Reviewer
None
Deadline for Review
No response