bounswe / bounswe2022group3

12 stars 1 forks source link

Final Milestone Group Report #494

Closed ersoykadir closed 1 year ago

ersoykadir commented 1 year ago

Issue

We need to prepare our group report for Final Milestone. image

Task(s)

Deliverables

Task Assignee Status
Provide a summary of your project status @yilmaz-burak
  • - [x]
Explain the status of the deliverables @bilalcim
  • - [x]
Provide final release notes @bilalcim
  • - [x]
Describe any changes your team has made or planned since Milestone 1 @hsuleerkul
  • - [x]
Provide reflections related to your Final Milestone Demo including lessons learned @berkeozdemir2016400246
  • - [x]
Describe what could be done differently in the start of the project to finalize the project, @muhammetssen
  • - [x]
Status of the requirements @mertcan-ozkan
  • - [x]
API Endpoints @ersoykadir
  • - [x]
User Interface / User Experience - Front @arfakbaba or @nurlandadashov02
  • - [x]
User Interface / User Experience - Mobile @salimtirit
  • - [x]
Annotations @furkanakkurt1335
  • - [x]
Standards @Goko6
  • - [x]
Scenarios @furkanakkurt1335
  • - [x]
User Manual @ersoykadir
  • - [x]
System Manual @muhammetssen
  • - [x]
Gather Project Artifacts( We can take them from first milestone report @ersoykadir
  • - [x]

Deliverable(s)

Acceptance Criteria

Deadline of the issue

02.01.2023 @19:00

Reviewer

None

Deadline for Review

No response

furkanakkurt1335 commented 1 year ago

Annotations

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.

furkanakkurt1335 commented 1 year ago

Scenarios

Scenario

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.

Work done

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.

muhammetssen commented 1 year ago

Describe what could be done differently in the start of the project to finalize the project

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.

mertcan-ozkan commented 1 year ago
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
Goko6 commented 1 year ago

Standards

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.

salimtirit commented 1 year ago

App Starting Page

1672626704662

Login Page

1672595539216

Register Page

1672595539188

Home Page

1672595539162

Search Learning Space

1672595539134 1672595539107

Learning Space Join

1672595537928 1672595537896

Topics

1672595539080

Create Topic

1672595538913 1672595538882

Delete Topic (Tap and Hold To Topic Tile)

1672595539026 1672595539000 1672595538971 1672595538852

Resources (Inside Topic)

1672595538825 1672595538798

Create New Resource

1672595538772 1672595538744 1672595538719 1672595538693

Resource Page

1672595538541 1672595538512 1672595538339

Press and Hold On Resource Tile Options Menu

1672595538664

Delete Resource

1672595538601 1672595538570

Edit Resource

1672595538633

Create New Note (From Resource)

1672595538368

Events

1672595538310

Create a New Event

1672595538254 1672595538225 1672595538195

Event View

1672595538025 1672595537996

Discussions

1672595537961

Add Discussion

1672626704647 1672626704632

View Comments

1672595538484

Add Comment

1672595538456 1672595538427 1672595538398

Profile About

1672595537830

Profile Joined Spaces

1672595537797

Profile Created Spaces

1672595537764

Edit Profile

image 1672595537705

Error Page

1672595537642

Feed

1672595537861

hsuleerkul commented 1 year ago

Changes since Milestone 1

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.

berkeozdemir2016400246 commented 1 year ago

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.

nurlandadashov02 commented 1 year ago

User

image

image

image

User/[user_id]

image

Space

image

image

Note

image

my/spaces/[space_id]

image

image

image

image

my/spaces/[space_id]/resource

image

image

my/spaces[space_id]/discussion/[discussion_id]

• Discussion https://github.com/bounswe/bounswe2022group3/blob/master/app/client/pages/my/spaces/%5Bspace_id%5D/discussion/%5Bdiscussion_id%5D.js

image

ersoykadir commented 1 year ago

API Endpoints

yilmaz-burak commented 1 year ago

Executive Summary - Summary of Project Status

Project Status

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.

bilalaytekin commented 1 year ago

List and Status of Deliverables

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
bilalaytekin commented 1 year ago

Final Release Notes

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/

ersoykadir commented 1 year ago

Well Done! The reports are visible in repo under deliverables/CMPE451_Customer_Presentation_Milestone_3