Skip to content

Milestone 2 Report

Ömer Talip Akalın 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. Plans for Moving Forward
    1.3. The Description of the Basic Functionality of Practice-app
    1.4. URL of practice app code and the tag
    1.5. URL of your application that was deployed with Docker
    1.6. Instructions for building the application with Docker
    1.7. Any information we may need to test your application
    1.8. Links to meeting notes
    1.9. Lessons Learned
  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.

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.

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 - can be seen at main branch.

You can also view the tag here.

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. IMPORTANT: You can view the swagger from the link: {API_URL}/apidocs

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

Links to meeting notes

Lessons Learned...

We've had some tough lessons during this semester of this class :) We learned the basics of group projects, the complexity of the organizations.

We learned Git (at least we thought we did).

Then, we moved to learn a basic application environment with our practice-app. By picking Flask, we've combined the knowledge of HTML, CSS, Python, Flask. Additionally, dockerization taught us the basics of containers.

We then learned Git, by breaking our main branch. Luckily, we managed to fix it.

We've learned the difficulties of developments, especially under deadlines. Working so hard to complete the project, and helping each other as much as we can without any hesitation - this class provided us so many opportunities to have a grasp of some culture.

Hopefully, it will be easier next year...

Individual Contribution Reports

Clone this wiki locally