Skip to content

Milestone 2 Report

Erkam Kavak edited this page May 12, 2023 · 30 revisions

Self Introduction

CMPE352 - Fundamentals of Software Engineering - Group 6

Contributors

Table of Contents

  1. Executive Summary
    1.1. Summary of the Project Status
    1.2. The Description of the Basic Functionality of Practice-app
    1.3. Plans for Moving Forward
  2. Individual Contribution Reports

Executive Summary

Our team is currently creating a Video Game Platform that offers a unique experience for gamers, developers, and e-sports players. This platform has three main sections: Forum, Event, and LFG, each with its own set of features. The Forum section allows users to share their experiences, discuss game-related topics, and connect with other members of the community. The Event section enables users to participate in various events organized by others or create their own events for others to join. Lastly, the LFG section brings together gaming enthusiasts who are looking to connect with others who share similar interests. This milestone includes the implementation of a practice application, in which we practice the technologies and tools that we will be using next semester. Also, the design patterns and architectures are other takeaways from this milestone.

Summary of the Project Status

Having learnt so much on working as a team from the beginning of the semester until the first Milestone, we have achieved to produce our first deployed application. In this application, each group member has created a section where users can interact with the corresponding APIs. We first started off with choosing the right tools to move forward. After some brainstorming and considering the suggestions that were given by our instructor, we decided to make use of one of the most popular web frameworks: Flask. The reasoning behind us choosing it is primarily it being easy to use, flexible, and lightweight. Each group member has studied how to use it effectively before initiating the implementation. The second step was to learn about the Git version control system. Git has been an integral part of our project development process. It was quite a challenge to get used to some of the concepts, however, with the more experienced team members it became much more easier to comprehend the general use of it. Next was the integration of the APIs that were chosen by each team member and creation of the endpoints that our server would be serving to. This stage has been completed parallelly. Each team member used Git to collaborate, thus compensating the downsides of working in a team. Later stages included deployment, dockerization, unit testing, documenting the API endpoints using Swagger, and organization of the Wiki page. All those stages have been completed as of now.

The Description of the Basic Functionality of Practice-app

This sign-in page requires a username and password in the user table in the database, which implies that you have to sign up if you don't have an account. If so, click the Doesn't have any account? Sign Up text. Screenshot 2023-05-12 at 20 04 24

After doing that, this sign-up opened page will require a username and password with the confirmation. By entering those information as shown below, you are ready to sign in to the web app. Note that if you cannot provide those information suitably, you are not allowed to enter the web app.
Screenshot 2023-05-12 at 20 11 21

When signing in to the web, the landing page, as shown below, will meet you. Screenshot 2023-05-12 at 20 16 30

To see all the APIs created by each of the team members, click GET STARTED button or just scroll down. Then you can see all of them as shown below. Details on how to use those APIs are described in each of the team member's individual contribution reports.
Screenshot 2023-05-12 at 21 05 40

  • URL of practice app code and the tag:

Url of our deployed web app is: http://13.50.250.218:5000

  • URL of your application that was deployed with docker:

Url of our deployed docker container: erkamkavak/group6-practice-app-container

  • Instructions for building the application with docker:
  1. First clone our repository from github(git needs to be installed)

git clone https://github.com/bounswe/bounswe2023group6.git

  1. cd into the practice-app folder

cd practice-app/

  1. Create a .env file and enter environment variables(you can copy the necessary variables from .env.example file)

  2. Start docker-compose build(docker and docker-compose need to be installed)

sudo docker-compose --build

  1. Start the docker-compose container(postgres service needs to be stopped on your computer)

sudo docker-compose up -d

  1. Now docker container should be started on your localhost. You can reach the website from localhost:5000.
  • Any information we may need to test your application
  1. First clone our repository from github(git needs to be installed)

git clone https://github.com/bounswe/bounswe2023group6.git

  1. cd into the practice-app folder

cd practice-app/

  1. Create virtual environment(this commands runs on linux and mac)

python -m venv .venv

source env/bin/activate

  1. Install required packages

pip install -r requirements.txt

  1. cd into tests folder

cd tests/

  1. Start all the tests

python -m pytest

  1. You may encounter many bugs while trying to build on mac system. Be patient, good luck...

Plans for Moving Forward

This practice app taught grasp the fundamentals of web application architecture, what elements comprises a fully functional web application, how separate parts of a web application communicate utilizing HTTP requests, which technologies are used while creating a web application, how an application is deployed making use of cloud computing platforms like AWS, and finally the use of containers and Docker. Besides, we learnt how team members can effectively collaborate using version control systems like Git. Having built a solid foundation on which technologies to use and how to do so, we are now ready to move forward by starting off the development process of the main project, a Video Game Platform. We believe that we will be benefiting from the experiences we have gained by developing this practice application during the implementation of the main project.


Individual Contribution Reports

Clone this wiki locally