Skip to content

0.9.0

Latest
Compare
Choose a tag to compare
@Sefik-Palazoglu Sefik-Palazoglu released this 25 Dec 19:04
· 105 commits to main since this release
5543f2a

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