Skip to content

Releases: bounswe/bounswe2023group4

0.9.0

25 Dec 19:04
5543f2a
Compare
Choose a tag to compare

Group 4 Cmpe451 2023 Fall Final Release

Mobile

Changelog

Profile page (Edit, Follow, Upload Image, Person specific feed)
Feed page (Semantic search)
Create poll page (Add tags)
Leaderboard
Forgot password flow
Some basic UI fixes
Moderation Flaw
Vote poll page is redesigned with new functionalities such as (Report, Annotations, Share)

Flaws:
We started to migrate our UI but we couldn't finish.
We stopped following some desing principals to speed up our code writing to be able to deliver some features.
We couldn't write new tests because of our lack of time.
We had no time to make integration or regression test that's why some errors may occur.
Some pages are making so much network requests. We had no time to optimize those.

Local execution
1- Change directory to prediction-polls/android
2- Open the directory with IDE (Android studio recommended since you also need sdk for local execution).
2- There is local.properties file (env file for the android apps) copy the env variables to the bottom of the file. Don't forget that this file should also include sdk directory but since it is user specific you should handle that. (Android studio handles this).
3- You should sync gradle. You can find the option from the bar in android studio. (Install dependencies)
4- Then you can run the app with run button. You may need to specify config for running but since the project have one app you can choose the default config.

Deployment
Since we are not publishing our app in platform, we are providing the apk for customer to test. You can find the apk in the attachment.

Annototations

Changelog

  • Annotation server is implemented
  • Support for GET, POST and DELETE annotations
  • Support for CSSSelector
  • Support for XPathSelector
  • Support for TextQuoteSelector
  • Support for TextPositionSelector
  • Support for image annotation in form of Fragment Selectors

Flaws:

  • We don't support all types of selectors in the standard

Annotation Server Build and Deployment Instructions

This section contains instructions to run the annotation server and its database. There will be two dockers, one for the server and one for the database. They need to communicate so we establish a docker network. Also, database data should be persistent so we use docker volume.

Database

We use mongoDB for storing annotations in this project. In your server, you should have docker installed.

First, configure a docker network

docker network create annotation-network

Configure a volume

docker volume create annotation_data

Run the stock database image with a name, network, and volume

docker run --name anno-db --network=annotation-network --volume=annotation_data:/data/db -d mongo
Server

We have an express app for our annotation server. The ports should be mapped, it should be on the same network as the database docker. You should be able to find an image for AMD64 sefik123/anno1:latest.

Pull the server image from docker

docker pull sefik123/anno1:latest

Run the server with port forwarding and in the same network that the database is in

docker run -d -p 4999:4999 --network=annotation-network sefik123/anno1:latest
Building Server

If you can't access the docker image, you can build the image from the annotations folder. Make sure you are inside annotations folder in the project.

Build the docker image for AWS EC2. So we specify platform.

docker build --platform=linux/amd64 -t anno1 .

Tag the build. Put you docker username instead of sefik123.

docker tag anno1:latest sefik123/anno1:latest 

Push the build.

docker push sefik123/anno1:latest

Backend

Changelog

Mod selection routine is added
Poll close routine which handles both poll closing and grading is added
Moderator requests has been implemented and their endpoints are added
Moderator tags has been implemented and their endpoints are added
Poll report and comment mechanisms has been implemented
Friend mechanisms follow,unfollow,followers and followed has been implemented
Point system has been implemented
New methods for get poll has been implemented

Flaws:
Unfortunately we dont provide enough feedback to the user about the results of their actions

Build and Deployment Instructions

This section contains instructions to run the backend server .

Server

We have an express app for our backend server. The ports should be mapped, it should be on the same network as the database docker. You should be able to find an image for btmn386/backend38:latest.

Pull the server image from docker
docker pull btmn386/backend38:latest

Run the server with port forwarding and in the same network that the database is in
docker run -d -p 8000:8000 btmn386/backend38:latest

Building Server

If you can't access the docker image, you can build the image from the backend folder.

Build the docker image for AWS EC2. So we specify platform.
docker build --platform=linux/amd64 -t backend1 .

Tag the build. Put you docker username instead of btmn386.
docker tag backend1:latest btmn386/backend1:latest

Push the build.
docker push btmn386/backend1:latest

Frontend

Profile page ( Follow, Person specific feed)
Feed page (Semantic search)
Leaderboard
Forgot password flow
Some basic UI fixes
Moderation-not-moderator
moderation-not-jury
moderation-jury
Vote poll page is redesigned with new functionalities such as (Report, Annotations, Share)

Flaws:
We abandoned some features such as the notification display to speed up the delivery of the most critical ones.
We couldn't write some of the new tests because of our lack of time or potential issues.
We had no time to make integration or regression test that's why some errors may occur.
Planned to take place in the last week, the system and customer testing couldn't take place because of the delays in the implementation which prevented the full realization of the application
Some UI components may seem unaesthetic due the rapidness of the development.

Server

We have a react app running on our frontend EC2 instance. The ports should be mapped, it should be on the same network as the database docker. You should be able to find an image for hebunsimsek/frontend5:latest.

Pull the server image from docker

sudo docker pull hebunsimsek/frontend5:latest

Run the server with port forwarding and in the same network that the database is in

sudo docker run -d -p 3000:3000 hebunsimsek/frontend5:latest
Building Server

If you can't access the docker image, you can build the image from the frontend folder.

Build the docker image for AWS EC2. So we specify platform.
docker build --platform=linux/amd64 -t frontend5 .

Tag the build. Put you docker username instead of hebunsimsek.
docker tag frontend1:latest hebunsimsek/frontend5:latest

Push the build.
docker push hebunsimsek/frontend5:latest

0.2.0-alpha

27 Nov 18:53
5d3199b
Compare
Choose a tag to compare
0.2.0-alpha Pre-release
Pre-release

Prediction Polls 0.2.0-alpha release

In this release, we implemented basic poll management. Polls can be created. Polls can be viewed through the feed. Profile are implemented. Users can sign in and upload profile pictures. Opened polls are tagged automatically if they are recognized by the system. This release serves as a step to lay out the base for the finished product. Basic feature of the product is done, navigation and sign in functionalities are done.

Frontend

Changelog

  • Vote Poll Backend Integration added
  • Create Poll Backend Integration added
  • Point Backend Integration added
  • Profile and Edit Profile Backend Integration added
  • Feed Backend Integration added
  • Search Bar UI added

Flaws

  • Moderation Page UI is not implemented

Local Execution

1- Cd to prediction-polls/frontend
2- Run "npm i"
3- Create .env file under frontend folder and fill .env file with given env file content
4- Run "npm run start"

Deployment

1- Cd to prediction-polls/frontend
2- Make sure docker daemon is running
3- Create .env file under frontend folder and fill .env file with given env file content
4- Run "docker-build -t my_image" to create an image with name my_image
5- Run "docker run my_image" to start image

Backend

Changelog

  • We have finalized google auth implemented creating, seeing and voting discrete and continuous polls endpoints.
  • Image upload and view
  • Mock badges.
  • Point system and poll closing is implemented
  • Profile maintenance, viewing and update of profiles.
  • Poll closing and point
  • Improved error management
  • Email verification
  • Auth validation
  • Automatic Poll tagging
  • Poll service tests
  • Profile service tests
  • Authorization service tests

Flaws

  • More exhaustive tests can be written

Local Execution

1- Cd to prediction-polls/backend
2- Run "npm i"
3- Create .env file under backend folder and fill .env file with given env file content
4- Run "npm run devStart"
5- For test run "npm test"

Deployment

1- Cd to prediction-polls/backend
2- Make sure docker daemon is running
3- Create .env file under backend folder and fill .env file with given env file content
4- Run "docker-build -t my_image" to create an image with name my_image
5- Run "docker run my_image" to start image

Mobile

Changelog

  • Profile page
  • Feed page
  • Create poll page
  • Leaderboard ui with mock data
  • Auth page validation
  • Google sign in
  • Bug fixes (auth middleware fix, some crashes)
  • App bar
  • Drawer integration
  • DateTime (ISO8601) format support

Flaws:

  • Poll UI should be improved
  • Poll buttons' actions should be implemented.
  • Profile page is not completed we don't support some features like edit profile or badges.
  • Leaderboard ui will be improved when we connect it to the backend.
  • Drawer and main app looks differrent we may adjust their colors.
  • Test coverage should be increased.

Local execution

1- Change directory to prediction-polls/android
2- Open the directory with IDE (Android studio recommended since you also need sdk for local execution).
2- There is local.properties file (env file for the android apps) copy the env variables to the bottom of the file. Don't forget that this file should also include sdk directory but since it is user specific you should handle that. (Android studio handles this).
3- You should sync gradle. You can find the option from the bar in android studio. (Install dependencies)
4- Then you can run the app with run button. You may need to specify config for running but since the project have one app you can choose the default config.

Deployment

Since we are not publishing our app in platform, we are providing the apk for customer to test. You can find the apk in the attachment.

0.1.1-alpha

14 Nov 20:31
b946fa5
Compare
Choose a tag to compare
0.1.1-alpha Pre-release
Pre-release

Frontend changelog:
We have fixed some old tasks like auth page validation and added vote poll screen,create poll screen, leaderboard screen and profile screen with mock data. We also implemented google sign in and added responsiveness to feed and auth pages.

Reflection:
We should have fully completed the create poll screen ui
We should have write tests to our codes

Mobile changelog:
We have patched some old tasks like auth page validation and added poll detail screen, leaderboard screen and feed screen with mock data. We also implemented google sign in and removed google sign up.

Reflection:

  • We should have completed the create poll screen ui
  • We should have completed the profile screen ui
  • We should have already expanded our test coverage

Backend changelog:
We have finalized google auth and implemented creating, seeing and voting discrete and continuous endpoints.

Reflection:

  • More endpoints for poll could be added.
  • Profile endpoints could be added.
  • Email verification and forgot password could be added.

0.1.0-alpha

31 Oct 18:55
bc645b4
Compare
Choose a tag to compare
0.1.0-alpha Pre-release
Pre-release

Prediction Polls 0.1.0-alpha release

In this release, we have laid down the architecture of our app and developed a prototype aimed at achieving Customer Milestone 1. While we have introduced several features, there's room for refinement or modification in line with evolving requirements. This release serves as a testament to our progress to date, establishing a solid foundation as we strive towards delivering an app that fully meets our customer's expectations.

Frontend

Changelog

  • Implemented the UI for both the sign-in and sign-up pages.
  • Implemented the sidebar for enhanced interpage navigation.
  • Implemented the UI for 2 view modes: light and dark modes.
  • Implemented the UI for the feed page.
  • Implemented the UI of elementary components such as discrete and continuous. polls.

Env Variables

REACT_APP_PUBLIC_GOOGLE_CLIENT_ID=438704612387-juqu41ofqkoluet3mnmenma0jn4ah3cd.apps.googleusercontent.com
REACT_APP_PUBLIC_GOOGLE_OAUTH_REDIRECT_URL=http://ec2-3-121-205-89.eu-central-1.compute.amazonaws.com:8000/googleAuth
REACT_APP_BACKEND_LINK=http://ec2-3-121-205-89.eu-central-1.compute.amazonaws.com:8000

Local Execution

1- Cd to prediction-polls/frontend
2- Run "npm i"
3- Create .env file under frontend folder and fill .env file with given env file content
4- Run "npm run start"

Deployment

1- Cd to prediction-polls/frontend
2- Make sure docker daemon is running
3- Create .env file under frontend folder and fill .env file with given env file content
4- Run "docker-build -t my_image" to create an image with name my_image
5- Run "docker run my_image" to start image

Backend

Changelog

  • Added authorization with access and refresh tokens.
  • Added google log in mechanism which currently collects data on backend
  • Implemented registration mechanism and connected it to database

Env Variables

ACCESS_TOKEN_SECRET=54cf744cd7915dfe0d9312f662f3d11cf01c9044ebddc1936342cebaafa4b31762336b1ea3a8d3db1fa96aac7761c23ad57cc6811f5cc0c67bb22c2fab8d9d6e
REFRESH_TOKEN_SECRET=8cdd68c7790caa842dce01db188a5024e27201c969855374b3207079bd93137117fcfd2ce247a87946cf93ea1c5486cba0a7d68293f66e2794d00b45aaa06b9a
MYSQL_HOST=prediction-app.crzjglbrejmx.eu-central-1.rds.amazonaws.com
MYSQL_USER=admin
MYSQL_PASSWORD=prediction123
MYSQL_DATABASE=predict_app
googleClientId=438704612387-juqu41ofqkoluet3mnmenma0jn4ah3cd.apps.googleusercontent.com
googleClientSecret=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
googleOAuthRedirectUrl=http://ec2-3-121-205-89.eu-central-1.compute.amazonaws.com:8000/googleAuth
googleOAuthFailRedirectUrl=http://ec2-3-78-169-139.eu-central-1.compute.amazonaws.com:3000/auth/sign-in

Local Execution

1- Cd to prediction-polls/backend
2- Run "npm i"
3- Create .env file under backend folder and fill .env file with given env file content
4- Run "npm run devStart"
5- For test run "npm test"

Deployment

1- Cd to prediction-polls/backend
2- Make sure docker daemon is running
3- Create .env file under backend folder and fill .env file with given env file content
4- Run "docker-build -t my_image" to create an image with name my_image
5- Run "docker run my_image" to start image

Mobile

Changelog

  • Android app initialized
  • Added required dependencies
  • Initialized theme colors
  • Selected and added new font
  • Added dynamic color feature (Disabled by flag for this milestone)
  • Implemented Navigation System
  • Implemented the network module
  • Implemented network interceptors
  • Implemented base classes (for example BaseViewModel)
  • Implemented exception handling system
  • Implemented Main Screen
  • Implemented Login Screen
  • Implemented SignUp Screen
  • Implemented Token Management System
  • Implemented Auth Service
  • Implemented common Error Dialog for unexpected errors.
  • Implemented Navigation Drawer for feed.
  • Added UI tests
  • Added Unit tests

Env Variables

base_url="http://ec2-3-121-205-89.eu-central-1.compute.amazonaws.com:8000/"

Local execution

1- Change directory to prediction-polls/android
2- Open the directory with IDE (Android studio recommended since you also need sdk for local execution).
2- There is local.properties file (env file for the android apps) copy the env variables to the bottom of the file. Don't forget that this file should also include sdk directory but since it is user specific you should handle that. (Android studio handles this).
3- You should sync gradle. You can find the option from the bar in android studio. (Install dependencies)
4- Then you can run the app with run button. You may need to specify config for running but since the project have one app you can choose the default config.

Deployment

Since we are not publishing our app in platform, we are providing the apk for customer to test. You can find the apk in the attachment.

Group4-Practice-App-Release-v.0.1

12 May 22:51
Compare
Choose a tag to compare
Pre-release

What's Changed

New Contributors

Full Changelog: https://github.com/bounswe/bounswe2023group4/commits/Group4-Practice-App-Release-v.0.1