Football-Friends

Football Friends - Project 3

Code Kickers FC

Overview

Entity Relationship Diagram

<img src=“Images/Database/ERD.png”> In the above ERD we have listed all the attributes of both the Users and Admired Players Schemas and the relationship between them.

Data Flow and Component Hierarchy

https://excalidraw.com/#json=JyhH0fF_IU_l3CyIbrwWX,1EPJqHp2bf5Ks3uXcO1o1w <img src=“Images/DataFlow/DF-CH.png”>

Models

<img src=“Images/Database/Models.png”>

Team Expectations

https://docs.google.com/document/d/1TWpg1u1rXhTKCyDuWgDQZmLaGjY8xo24nyqrrdJnQvM/edit?usp=sharing

User Stories

Tracking User Story Progress

Wire Frames

Browser Wire-Frame

<img src=“Images/Wireframes/WF-Browser.png”>

Browser Wire-Frame Whole App

<img src=“Images/Wireframes/WF-Browser-Whole.png”>

Mobile Wire-Frame

<img src=“Images/Wireframes/WF-Phone.png”>

Mobile Wire-Frame / Whole App

<img src=“Images/Wireframes/WF-Phone-Whole.png”>

Project Management

https://github.com/users/jayteebee/projects/1

Timeframe And Working Team

We were given this project on the 4th May, 2023 and were tasked to submit and deploy by Friday 12th. Team members:

Back End Technologies Used

Brief

Planning

Collaboration

Client (Front End)

Server (Back End)

Styling

Deployment

Procedural

Stretch Goals

Planning

Much of our planning process can be seen at the top of this document. One key point to add is that once we had started to work on the project, we made good use of Github’s Project planning tool to create and track tickets which needed to be completed. We were then able to claim responsibility of certain tasks and make sure tasks were being complete in the correct fashion.

Build Process

Challenges

One of the challenges we faced within the project was how to divvy up responsibilities to ensure that everyone had at least some exposure to areas of coding with which they’re not as comfortable. Once we had started to merge the front/back end (as detailed below) we decided that it’d be an opportune time to switch roles for a day so we could achieve the goal stated above. Safe to say it was a bit of a challenge getting up to speed, but certainly a worthwhile process as not much time was lost making progress towards the MVP.

Wins

One of the big wins that we experienced collectively as a team was the ability to communicate clearly and efficiently throughout the course of the project. Doing so meant that we encountered very few merge conflicts, and when they did occur they were minor and didn’t take too long to sort out. This was born out of the discussions we had whilst planning. We all agreed that the best way to approach a group project was to put communication as the main priority. This looked like frequent screen sharing and group git pushing, code debugging and progress reports. Approaching the project in this manner not only lead to a less stressful Project week, but also an end product that we could be proud of. Another big win for the team was when we joined the front and back end. Doing so was quite a pivotal moment in the project as up until then, the two code bases hadn’t connected and the nature of our approach (a front/back end split in pairs) meant although we knew what each other was doing, we didn’t have hands on experience in each others code base.

Authentication

As listed above, one of the MVP requirements for this project was implementing authentication for the application. Given this was a new and quite difficult challenge, it is worth calling out how we approached this and how we got on.

When we first started to tackle this feature, it was evident that there wasn’t a clear understanding of all the moving parts involved in authentication. It therefore felt sensible to actually sketch out a high level flow of all the steps involved.

See below the diagram we came up with:

It was once we had this fleshed out that we were able to confidently start programming the various requirements. Due to the fact that we had chunked up the process into small parts we managed to progress through the actual implementation quite quickly.

Another benefit of the process flow was communicating the process to the whole team. Not everyone on the team was directly involved in implementing the authentication, but it of course would impact everyone. It was with the high level process flow that we were able to communicate easily what was happening.

Project Management

As a team, one of our strengths was communicating effectively and making sure we were always making progress. One thing that really helped with that, outside of each team member’s individual efforts to communicate effectively, was the use of the github projects tool.

See below a screenshot of a section of the tool from within the project.

As you can see, we split the different tasks up to be represented by different tickets. We included a brief description of what work was involved, who was responsible for it, what stage it was at as well as a few other details.

This really helped to ground our planning conversations each day. It was clear what was still left to do to reach MVP, it was clear who was owning what and it was clear what order the work needed to be done in. It was also easy to keep track of what everyone in the team was working on which helped to avoid merge conflicts when we came to pull requests.

Git Process

It has been highlighted that we as a team are proud of the way we worked together. One other bit to call out which helped us was the way that we managed our git processes to make sure that our work was consistently being synced up.

The first part of that was making sure that our git process was clear. We sketched out the process, calling out the commands and steps required so that it was really clear.

This combined with the way that we agreed to work together meant that the team were frequently committing their work and we were doing pull requests several times a day.

We had well over 200 commits by the end of the project.

We also worked through around 50 pull request and merges.

In just 4 working days of development time, this helps to demonstrate the way that we as a team worked together. We are especially proud as it for each team member this was the first time working on a group project in the world of software development.

Future Improvements

In the future, we’d like to build out more functionality within our app to make it closer to something that could be deployed in the real world. Specifically: