Skip to content

Customer Milestone 2 Report

Erkam Kavak edited this page Dec 1, 2023 · 32 revisions

1. Milestone Review

1.1 A Summary of the project status:

Up until the first milestone we were dealing with the “what” question. We refactored the project plan, what to exclude and include in the project. We decided on the core concepts and elements of our application. Also implemented the basic interface that the users could interact with. After the first milestone, we moved forward with the implementation of aforementioned concepts and elements like games, posts and comments. And some other functionalities like editing the elements. We managed to implement the promised features. However, we had some problems related to CORS policies, which posed a threat to the progress of the application. During the time until the last milestone, we are not only planning to solve this problem but also provide our users with more features like recommending posts, games etc. Furthermore, we will be introducing the search mechanism and annotation feature.

1.2 A summary of the customer feedback and reflections:

  • Games/Posts/Groups titles on the homepage should be Recommend Games/Recommend Posts/Recommend Groups.
  • The customer is a little lost in the forum screen because she wants to see the comments for the same game.
  • There was a problem with the post images appearing.
  • The search layout should be more noticeable.
  • Enlarge the category of the player number by adding the Team-Based category.
  • There should be liked games section on the profile page.

1.3 Describe any changes your team has made since Milestone 1 or planned for the future to improve the development process. Explain how these changes impacted or will impact your process:

Since Milestone 1, our team has implemented several strategic changes to enhance our development process like a focus on issue management, pull request (PR) handling etc. These changes are designed to streamline our workflow, improve clarity, and ensure higher quality outcomes.

  1. Refining Issue Descriptions: We realized the importance of clear and detailed issue descriptions for effective team collaboration. Moving forward, we are committed to providing comprehensive details in our issue tracking system. This includes clearer titles, more descriptive texts, and relevant tagging. This change has already led to a reduction in misunderstandings and accelerated issue resolution times.

  2. Enhancing PR Descriptions: Acknowledging the role of well-documented PRs in code quality, we are now focusing on enhancing our PR descriptions. This includes providing context, summarizing changes, and linking related issues. Improved PR descriptions are aiding in better code reviews and reducing the time required for code integration.

  3. Continual Feedback and Iterative Improvement: We are instituting a process of continual feedback among team members. This iterative approach to process improvement is fostering a culture of continuous learning and adaptability.

These changes are not just procedural but are part of a shift towards a more collaborative, transparent, and quality-focused development culture. We anticipate that these adjustments will significantly enhance our efficiency, reduce errors, and lead to a more streamlined development process, ultimately contributing to the success of our project.

1.4 List and status of deliverables:

Deliverable Status
Milestone Review Completed
Individual Contributions Completed
The Software Completed

1.5 Provide progress according to requirements: being either not started, in progress, or completed (completed = implemented, tested, documented, and deployed):

You can see the progress in the requirements with their status one by one by saying those statuses within the parenthesis at the end of each requirement provided the link.

1.6 API endpoints (both public or private access):

1.7 Generated unit test reports (for backend, frontend, and mobile):

Backend:

  • Here can be found the reports generated for the backend unit tests.
Screenshot 2023-12-01 at 14 56 49 Screenshot 2023-12-01 at 14 57 00 Screenshot 2023-12-01 at 14 57 09 Screenshot 2023-12-01 at 14 57 17 Screenshot 2023-12-01 at 14 57 28 Screenshot 2023-12-01 at 14 57 35 Screenshot 2023-12-01 at 14 57 42 Screenshot 2023-12-01 at 14 58 03

1.8 The general test plan for the project, which describes your product's testing strategy (e.g., unit testing, integration testing, mock data, etc.):

Unit Testing:

Backend: The backend development team focuses on writing extensive unit tests to validate the correctness of individual components and functions. These tests cover various scenarios and edge cases, providing a robust foundation for the backend logic.

Mock Data Testing:

Frontend and Mobile Development: During the initial phases of frontend and mobile development, mock data is utilized to simulate interactions with the backend before its completion. This enables frontend developers to work independently and refine the user interface while awaiting the availability of actual backend services.

Backend Development: Simultaneously, the backend team leverages mock data for testing purposes, allowing them to validate the functionality of their services independently of the frontend. This parallel development approach facilitates quicker iterations and accelerates the overall development process.

We hope to provide a high-quality product that satisfies functional and non-functional criteria while encouraging cooperation between development teams and stakeholders by implementing these testing procedures into our development workflow.

1.9 The status of the features in your software making use of the annotation technology:

As of now, the implementation of annotations in Game-Lounge is in the planning stage, with the intention to be completed by Customer Milestone 3.

1.10 Your plans for implementing functionalities associated with annotations:

We are planning to implement annotations in Game-Lounge by Customer Milestone 3. This implementation will include game name annotations, allowing users to add information such as game descriptions, release dates, ratings, and additional details when mentioning a game. Users will also be able to navigate directly to related game pages, explore more about the game, and discover other relevant posts and group finding posts.

Similarly, users can mention characters, triggering the display of character details, backstories, and roles. Additionally, users will have the ability to annotate a game with images.

The goal of these enhanced text annotations is to provide a seamless and informative user experience. Users will be able to quickly access information about games and characters directly within the annotation context, contributing to a more engaging and informed gaming community.

The primary source for annotation data will be our internal database. The platform will communicate with internal databases to fetch and display relevant data, ensuring a smooth and efficient user experience. As part of our implementation strategy, we may also explore the use of external annotation libraries after conducting research.

2. Individual Contributions

3. The Software

The project currently deployed on http://game-lounge.com.

3.1 Docker Building

We utilize GitHub Actions for building and pushing Docker images to DockerHub. To view the specific Docker build commands, you can explore the .github/workflows directory.

Backend: In the app/backend folder, backend can be built by the following command:

  • docker build -t erkamkavak/gamelounge-backend

Frontend: In the app/frontend folder, frontend can be built by the following command:

  • docker build -t erkamkavak/gamelounge-frontend

Builded docker images can be accessed by following DockerHub repository:

3.2 Docker Deployment

Database(Postgresql):

  • sudo docker run --detach -p 5432:5432 -e POSTGRES_USER="postgres" -e POSTGRES_PASSWORD="verysecurepassword" -e POSTGRES_DB="postgres" postgres

Backend:

  • sudo docker run --detach -p 8080:8080 -e SPRING_DATASOURCE_URL="jdbc:postgresql://167.99.242.175:5432/postgres" -e SPRING_DATASOURCE_USERNAME="postgres" -e SPRING_DATASOURCE_PASSWORD="verysecurepassword" -e MAIL_URL="http://167.99.242.175:8080/" -e CLOUD_AWS_S3_BUCKET="game-lounge-storage" -e CLOUD_AWS_CREDENTIALS_ACCESSKEY=<aws_access_key> -e CLOUD_AWS_CREDENTIALS_SECRETKEY=<aws_secret_key> erkamkavak/gamelounge-backend:11

Frontend:

Note: The server at the address 167.99.242.175 hosts the database, backend, and frontend deployments. To operate this on your local machine, you need to change the address from 167.99.242.175 to 'localhost'.

Additional Note: The deployment of the database, backend, and frontend should follow a sequential order. The frontend requires the backend for its initial setup, just as the backend depends on the database for its initial configuration.

3.3 Mobile Application

In the app/mobile folder, application can be run via:

  • flutter run

In order to create apk:

  • flutter build apk

It creates a release apk in following folder:

build\app\outputs\flutter-apk\app-release.apk

Clone this wiki locally