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.