Releases: bounswe/bounswe2024group8
0.9.0
Group 8 CMPE 451 2024 Fall Final Release
What's Changed
- Comment Service Unit Tests by @tuluyhansozen in #386
- Unit Test for file service by @tuluyhansozen in #387
- Create tournament service tests by @yektaercul in #390
- Update the frontend branch by @deniz6221 in #396
- 3design frontend tests by @deniz6221 in #397
- Frontend - Unit Tests by @deniz6221 in #398
- model render camera fix by @TurkerErdem99 in #400
- Mobile semantic search functionality by @AliAlperenSonmez in #412
- Lab8 mobile by @AliAlperenSonmez in #413
- Lab8 by @TurkerErdem99 in #402
- Implement user search and get user response endpoints. by @oguzkagnici in #414
- Include tags for post search. by @oguzkagnici in #416
- Create 6 new achievements by @oguzkagnici in #418
- Compatibility update for mobile application by @onurcerli in #423
- Fix like and dislike buttons for posts and comments in mobile application by @onurcerli in #425
- Added achievements feature to the profile screen by @onurcerli in #431
- Mobile updated parse join by @edonmez01 in #439
- Mobile annotations by @edonmez01 in #440
- Swagger descriptions for post,user,tournament,category controller by @tuluyhansozen in #433
- Implement post update and delete features. by @oguzkagnici in #441
- Implement post search with tags by @oguzkagnici in #446
- Create one integration test by @yektaercul in #447
- Mobile user search by @AliAlperenSonmez in #450
- 3design mobile by @onurcerli in #455
Full Changelog: customer-milestone-2...customer-milestone-3
How To Run
To run this version of project on a machine, following steps are needed:
1. System Configuration
x86-64, Ubuntu 22.04 and 2GB RAM configuration is recommended.
2. Object Store
For the storage of 3D Model file objects, access to GCP (Google Cloud Platform) Cloud Storage service is necessary.
3. Database
To run the project, PostgreSQL installation is required. Execution of the following bash commands on Ubuntu/Linux can be used:
sudo apt update
sudo apt install -y postgresql postgresql-contrib
sudo systemctl start postgresql
sudo systemctl enable postgresql
sudo -i -u postgres bash <<EOF
createdb threedesign
psql -c "CREATE USER postgres WITH PASSWORD 'psqldev2024';"
psql -c "GRANT ALL PRIVILEGES ON DATABASE threedesign TO postgres;"
EOF
The database "threedesign" will be initialized when the backend of the project runs for the first time.
4. Docker Installation
To run backend and frontend, using docker containers are recommended. So, install and verify docker installation with the following bash commands:
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
sudo systemctl start docker
sudo systemctl enable docker
sudo docker --version
sudo systemctl status docker
sudo usermod -aG docker $USER
Restart bash connection. Then, verify docker installation with the following command:
docker run hello-world
5. Backend Deployment
Pull/clone latest code from main branch. Database and bucket configuration is defined in the following file (it can be edited with your corresponding configuration):
bounswe2024group8/3Design/backend/threedesign/src/main/resources/application.properties
After the configuration is done, use following commands to run backend:
cd bounswe2024group8/3Design/backend/
docker build -t backend:1.0 -f Dockerfile ./threedesign/
docker run -d -v /path/to/gcp/pamkeyfile.json:/key.json -e GOOGLE_APPLICATION_CREDENTIALS=/key.json --name backend --rm -p 8080:8080 --network host backend:1.0
docker exec backend /bin/bash -c "nohup java -jar /app/target/threedesign-0.0.1-SNAPSHOT.jar &"
The pamkeyfile.json file is the GCP Service Account Key file, that is used for accessing GCP Cloud Storage Bucket. It is generated and can be obtained on GCP Service Accounts page.
6. Frontend Deployment
Pull/clone latest code from main branch. Edit the file below for backend URL configuration:
bounswe2024group8/3Design/frontend/.env
After the configuration is done, use the following commands to run frontend:
cd bounswe2024group8/3Design/frontend/
docker build -t frontend:1.0 -f Dockerfile ./
docker run -d --name frontend -p 3000:3000 --network host frontend:1.0
Deployment
This version can be accessed on the following URLs:
- Live Backend Url: http://34.32.78.191:8080/swagger-ui/index.html
- Live Frontend Url: http://34.32.78.191:3000/login
For mobile, the APK file shared in this release report.
0.2.0-alpha
What's Changed
- Db entities added and updated by @yektaercul in #267
- Improved 3d viewer component, made it conditional. by @deniz6221 in #265
- Generic feed implemented, categories initiated by @deniz6221 in #268
- 3design frontend by @deniz6221 in #272
- Lab5 Pull Request - Implementation of W3C standard by @oguzkagnici in #277
- Vertical menu for posts implemented. by @deniz6221 in #283
- Download Model Function For Frontend by @deniz6221 in #284
- 3design frontend by @deniz6221 in #285
- Feature/comment by @oguzkagnici in #273
- Feature/category by @tuluyhansozen in #281
- Feature/Post by @tuluyhansozen in #282
- implement file service to upload to gcp by @yektaercul in #290
- Lab 6 Pull Request - UI/UX by @oguzkagnici in #295
- Update the frontend branch by @deniz6221 in #304
- Feature/CreatePost by @tuluyhansozen in #306
- Implement reaction feature fix several comment issues. by @oguzkagnici in #293
- Tournament implementation by @yektaercul in #309
- Frontend UI Fix by @deniz6221 in #305
- 3design frontend comments by @erselcanakcili in #313
- Implement post retrieval endpoints by @oguzkagnici in #320
- Create post feature completed by @erselcanakcili in #323
- Implement user followings. by @yektaercul in #325
- implement annotation layer for posts and comments by @yektaercul in #326
- Lab7 mobile by @AliAlperenSonmez in #330
- Lab 7 Pull Request by @oguzkagnici in #327
- Implement Category follow unfollow by @yektaercul in #336
- Updated Post Creation Screen by @onurcerli in #340
- Feature/CreatePost exception handler and join tournement control by @tuluyhansozen in #312
- Earn tournament points with interaction by @oguzkagnici in #332
- Feature/achievements by @oguzkagnici in #344
- Add followed users' posts to feed by @oguzkagnici in #346
- Implement assignPrize method by @yektaercul in #348
- 3design mobile feed backend connection by @edonmez01 in #350
- Mobile follow category by @edonmez01 in #356
- Mobile comments by @edonmez01 in #358
- Mobile file upload download by @edonmez01 in #368
- Mobile categories by @edonmez01 in #370
- Mobile profile page backend connection by @edonmez01 in #373
- add swagger implementation by @yektaercul in #376
- 3design mobile tournament by @AliAlperenSonmez in #375
- Merge Finalized Version Of Mobile Into main Branch by @onurcerli in #378
New Contributors
- @tuluyhansozen made their first contribution in #281
- @AliAlperenSonmez made their first contribution in #330
Release Description
Covered Requirements:
-
1.1 User Requirements
- 1.1.2 Registration and Login
- 1.1.2.1 Users shall be able to:
- 1.1.2.1.1 Update their password.
- 1.1.2.1.2 Log out of their account.
- 1.1.2.1.3 Change their username once a month.
- 1.1.2.1.4 Change their profile picture.
- 1.1.2.1.5 Delete their account.
- 1.1.2.1.6 Follow other users.
-
1.1.3 Categories (See "1.2.1 Categories")
- 1.1.3.1 Users shall be able to follow or unfollow any category.
- 1.1.3.2 Users shall be able to create posts or interact with posts in every category. (See "1.1.4 Posts")
-
1.1.4 Posts
-
1.1.4.1 Visual Posts
- 1.1.4.1.1 Users shall be able to create and interact visual posts in each category under Gallery Tab. (See "1.2.1 Categories")
- 1.1.4.1.2 Users shall be able to reply another visual post while creating one to start a Challenge.
- 1.1.4.1.3 Users shall not be able to create a visual-post without adding a 3D file.
- 1.1.4.1.4 Users shall be able to submit one Visual Post per Category per week to participate in Tournaments.
-
1.1.4.2 Text-Only Posts
- 1.1.4.2.1 Users shall be able to create and interact text-only posts in each category under Discussions Tab.
- 1.1.4.2.2 Users shall not be able to create a text-only post with an attached file.
-
1.1.4.3 Users shall be able to add tags to their own posts.
-
1.1.4.4 Users shall be able to like, dislike and bookmark a post.
-
1.1.4.5 Users shall be able to write a comment to a post. (See "1.1.5 Comments")
-
1.1.4.6 Users shall not be able to tag other users in the post. Only way to reply other than commenting is by Challenge.
-
-
1.1.5 Comments
- 1.1.5.1 Users shall be able to write comments to the posts.
- 1.1.5.2 Comments shall contain at most 250 characters.
- 1.1.5.3 Users shall not be able to tag other users in the comment.
- 1.1.5.4 Users shall not be able to reply a comment with their comment.
- 1.1.5.5 Users shall be able to like or dislike a comment.
-
1.1.6 Profile
- 1.1.6.1 Users shall have a profile (personal page) visible to users.
- 1.1.6.2 At the profile, other users shall be able to see:
- 1.1.6.2.1 User's profile picture.
- 1.1.6.2.2 User's Tournament points, rankings and achievements.
- 1.1.6.2.3 Followers and follow list.
- 1.1.6.2.4 User's latest posts and comments.
-
1.1.7 Searching
* 1.1.7.1 Users shall be able to view related items to entered keywords while searching. -
1.1.8 Tournaments
- 1.1.8.1 Users shall be able to participate in weekly Tournaments by submitting one Visual Post per Category.
- 1.1.8.2 Users shall be able to participate in multiple Categories with different Visual Posts.
- 1.1.8.3 Users shall be able to view the Tournament leaderboard for each Category.
- 1.1.8.4 Users shall earn experience points based on their rankings if they are in the top three positions.
- 1.1.8.5 Users' Tournament achievements shall be displayed on their Profiles.
- 1.1.8.6 Users shall not be able to edit their Tournament submissions.
- 1.1.8.7 Users shall be able to delete their Tournament submissions.
-
1.2 System Requirements
-
1.2.1 Categories
- 1.2.1.1 System shall contain various categories dedicated to certain fields in 3D modeling.
- 1.2.1.2 Categories shall not be deleted or created by users.
- 1.2.1.3 Categories shall have two tabs, namely Gallery and Discussions.
- 1.2.1.4 Categories shall include a leaderboard based on tournament points
-
1.2.2 Posts
-
1.2.2.1 Visual Posts
- 1.2.2.1.1 Visual Posts shall have a 3D file in one of the supported formats.
- 1.2.2.1.2 Visual Posts shall be created under the Showcase Tab.
- 1.2.2.1.3 Visual Posts submitted for Tournaments shall be marked accordingly.
- 1.2.2.1.4 3D files attached shall be at most 10MB.
- 1.2.2.1.5 Text content shall be at most 256 characters.
- 1.2.2.1.6 3D Files shall be viewed in a dedicated window that allows interaction.
-
1.2.2.2 Text-Only Posts
- 1.2.2.2.1 Text-Only Posts shall only have plain text as a content.
- 1.2.2.2.2 Text-Only Posts shall be created under the Discussions Tab.
- 1.2.2.2.3 Text content can be at most 256 characters.
-
1.2.2.3 Posts shall have a title.
-
1.2.2.4 Posts shall have tags.
-
1.2.2.5 The system shall calculate points for each Visual Post submitted to a Tournament based on likes, dislikes, and bookmarks using a predefined algorithm.
-
1.2.2.6 The system shall prevent users from editing their Tournament submissions.
-
-
1.2.3 Search and Filtering
- 1.2.3.1 The system shall allow users to search posts, Categories and users by semantic searching.
- 1.2.3.2 The system shall keep the search history of every user for better searching experience.
- 1.2.3.3 The system shall use Wikidata to perform semantic search.
-
1.2.4 Feed
- 1.2.4.1 The system shall filter the posts by the user and shows the feed as the home page.
- 1.2.4.2 The feed shall be refreshable.
- 1.2.4.3 The feed shall contain followed users' ...
0.1.0-alpha
What's Changed
- backend init by @yektaercul in #235
- Implement Authorization Endpoints by @yektaercul in #239
- Created feed and post components by @erselcanakcili in #242
- Discussion posts; feed, sidebar improvements by @deniz6221 in #243
- 3design mobile feed by @edonmez01 in #247
- Implement WikidataService for semantic search. by @oguzkagnici in #241
- Api connected, logout implemented for frontend by @TurkerErdem99 in #249
- Merge frontend into main by @deniz6221 in #250
- Dockerfile added for frontend by @TurkerErdem99 in #251
- Mobile app finalized for first milestone by @onurcerli in #252
New Contributors
- @yektaercul made their first contribution in #235
- @deniz6221 made their first contribution in #243
- @TurkerErdem99 made their first contribution in #249
Release Description
Covered Requirements:
1.1 User Requirements
- 1.1.1 Registration and Login
- 1.1.1.1 Users without an account can register using a unique email address, username, and password.
- 1.1.1.2 Registered users can log in using their email address and password.
2.1 Platforms
- 2.1.1 The application is available on both Web and Mobile platforms.
- 2.1.2 The web version is compatible with widely used browsers, including Google Chrome, Safari, Microsoft Edge, and Mozilla Firefox.
- 2.1.3 The mobile version supports devices and operating systems up to 5 years old.
Additional Notes:
Several screens and functionalities, such as model viewing and the feed screen, have been implemented for customer feedback but do not directly cover specific requirements at this stage.
Full Changelog: Group8-Practice-App-Release-v0.2...customer-milestone-1
appFanatic v0.2
What's Changed
- addition of latest version of the backend and frontend to mobile branch by @onurcerli in #104
- add updates in backend part to mobile by @onurcerli in #122
- Mobile by @onurcerli in #123
- Mobile by @onurcerli in #129
- AuthResponses updated and getById added to user by @daghanerdonmez in #155
- Dev by @daghanerdonmez in #170
- Dev by @edonmez01 in #176
- Merge mobile posts branch into main mobile branch by @edonmez01 in #181
- Merge final mobile branch into main by @edonmez01 in #183
New Contributors
Full Changelog: Group8-Practice-App-Release-v0.1...Group8-Practice-App-Release-v0.2
appFanatic v0.1
What's Changed
- initial commit by @daghanerdonmez in #77
- initial commit by @daghanerdonmez in #82
- Merge pull request #82 from bounswe:frontend by @daghanerdonmez in #83
- Main by @daghanerdonmez in #84
- mobile to main by @onurcerli in #86
- Mobile by @onurcerli in #87
- Merge pull request #87 from bounswe/mobile by @onurcerli in #88
- Main merge by @daghanerdonmez in #89
- Frontend by @daghanerdonmez in #90
- Addition of newer changes in mobile part to project by @onurcerli in #96
- Mobile to main by @onurcerli in #103
- Frontend by @erselcanakcili in #106
- Revert "Frontend" by @erselcanakcili in #107
- Frontend by @daghanerdonmez in #108
- Frontend new by @daghanerdonmez in #110
- Backend Wikidata Service by @oguzkagnici in #111
- Sync mobile updates with main branch by @edonmez01 in #134
New Contributors
- @erselcanakcili made their first contribution in #106
- @oguzkagnici made their first contribution in #111
- @edonmez01 made their first contribution in #134
Full Changelog: https://github.com/bounswe/bounswe2024group8/commits/Group8-Practice-App-Release-v0.1