Angular Golf Scorecard

2025-01-27

Angular Golf Scorecard

Repository

This project was a capstone, we were to take the basic golf project and re-create it using Angular and with all the concepts that have been learned previously.

Stack

Full production-ready Angular application for tracking golf scores with Firebase backend and external API integration.

Technology

  • Angular 7 with TypeScript
  • Angular Material for UI components
  • Firebase (authentication + backend)
  • Angular Bootstrap
  • RxJS for reactive programming
  • Karma + Jasmine for testing
  • Protractor for e2e tests

Key Features

  • Unit test suite
  • All functionality from js-golfProject
  • Reactive automatic score calculation
  • Database use and access
  • Production authentication

Learning Focus

  • Refactoring projects
  • Test Driven Development
  • Angular Component Lifecycle
  • Authentication

Ramblings

I did not enjoy this project mostly because I had to use Angular and it was going through a similar development process as react at the time I was working on it as well. A lot of the conventional patterns for working with authentication and firebase were no longer up to date and I also had to trial and error my way into getting it working. What I did enjoy was some of the conventions of angular itself in using ng-container and how you could retrieve data just by wrapping the variable in double curly braces. This helped me in my next job as they were using angularJS and .NET and the evaluations within the braces were consistent between the versions.

After doing projects with these frameworks I found that I do not like how bloated they are in bundle size and development overhead. They do make writing code in a group easier but the problem I've found is that creating these projects as a single page application slows the user's browser down even creating small apps such as these. If you aren't creating a heavy number crunching application with a massive dashboard it's pretty overkill. I make an exception for React Native as being able to hook directly into operating system functionality can be great for specific projects. On second reflection no matter what the language or framework it all depends on the project requirements.

Next project: Portfolio Terminal Site