Releases: bounswe/bounswe2023group4
0.9.0
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
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
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
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
What's Changed
- Feature/dockerization by @YigitSekerci in #89
- Feature/formatter setup by @YigitSekerci in #90
- Feature/Country-API by @EmreBatuhan in #91
- Feature/mainpage by @YigitSekerci in #92
- Feature/sport by @EmreBatuhan in #95
- Improvement/Country unit tests by @EmreBatuhan in #104
- Feature/weather by @enfurars in #99
- Improvement/deployment by @EmreBatuhan in #105
- Improvement/Deployment by @EmreBatuhan in #106
- add cors interceptor to requests by @YigitSekerci in #108
- Batuhan frontend page by @YigitSekerci in #111
- Improvement/swagger by @AliNasra in #113
- Feature/poll by @AliNasra in #93
- unit tests are added by @enfurars in #110
- Yigit Frontend page for sports api by @YigitSekerci in #115
- Improvement/sport unit tests by @EmreBatuhan in #118
- Enes Page by @YigitSekerci in #119
- Feature/reqres by @AliAlperenSonmez in #103
- Feature/exchange rate by @AliAlperenSonmez in #102
- Feature/alperen page by @YigitSekerci in #125
- Created sport suggestion by @YigitSekerci in #129
- Ordered migrations by @EmreBatuhan in #130
- add sport suggestions frontend by @YigitSekerci in #134
- Feature/location api by @carmendetroit in #114
- added form for weather post request by @selinisik in #131
- Feature/movies post by @aemresafak in #132
- implemented post UI and post request for exchange rate API by @selinisik in #136
- Feature/poll page by @aemresafak in #127
- Feature/selin page by @selinisik in #137
- Feature/movie page by @aemresafak in #128
- Update Migrations by @EmreBatuhan in #138
- fix reqres hooks by @YigitSekerci in #139
New Contributors
- @YigitSekerci made their first contribution in #89
- @EmreBatuhan made their first contribution in #91
- @enfurars made their first contribution in #99
- @AliNasra made their first contribution in #113
- @AliAlperenSonmez made their first contribution in #103
- @carmendetroit made their first contribution in #114
- @selinisik made their first contribution in #131
- @aemresafak made their first contribution in #132
Full Changelog: https://github.com/bounswe/bounswe2023group4/commits/Group4-Practice-App-Release-v.0.1