Skip to content

Releases: bounswe/bounswe2024group8

0.9.0

16 Dec 18:55
de0e189
Compare
Choose a tag to compare

Group 8 CMPE 451 2024 Fall Final Release

What's Changed

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:

For mobile, the APK file shared in this release report.

0.2.0-alpha

25 Nov 18:56
8ab91c4
Compare
Choose a tag to compare
0.2.0-alpha Pre-release
Pre-release

What's Changed

New Contributors

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' ...
Read more

0.1.0-alpha

21 Oct 22:10
41862f4
Compare
Choose a tag to compare
0.1.0-alpha Pre-release
Pre-release

What's Changed

New Contributors

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

17 May 18:02
d1dbb69
Compare
Choose a tag to compare
appFanatic v0.2 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: Group8-Practice-App-Release-v0.1...Group8-Practice-App-Release-v0.2

appFanatic v0.1

30 Apr 18:54
c807329
Compare
Choose a tag to compare
appFanatic v0.1 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: https://github.com/bounswe/bounswe2024group8/commits/Group8-Practice-App-Release-v0.1