DEV Community

loading...

My first fully functional web app is here!

lwolczynski profile image lwolczynski ・4 min read

Play golf, disc golf or foot golf and create your personal scorecard to compete with friends! Easy to use, easy to share. Visit myscore.golf

What it's about

So what do you do when unexpectedly, everything but parks in your town is closed? If you answered: go to a park and play disc golf, we are in the same boat. You go there and you take a piece of paper and a pen to follow yours and your friends' scores. After a couple times a little imaginary bulb lights up over your head. The idea is here. Let's track it them on your phone. Golf score trackers online? Many. But then you find that they add features you will never use and they want you to pay. You want a simple tracker though. What do you do? Build one!


As the idea was there, I got to work. Django, jS, SQL are things I've learned before, so I had no other choice than use them. Nobody minds a little practice. A friend said, don't use Bootstrap, you'll learn more about CSS. Say no more. After 5 weeks, the website is here. Built from scratch. Mobile-friendly and intuitive. The goals I had in mind were: make it look good and don't over-complicate it. It went well. Well enough to share it. You tell me what you think!

My plan now is to find people who will use it. And again, it's not for people crazy about golf that I don't know much about. But hey, mini-golfers! Disc golfers! Foot golfers! I have something for you! And even if not, it was a learning experience and I will use it with my friends, so nothing goes to waste!

What I found

It's been a journey and learning process. Many libraries, extensions, properties and tools I used for the first time. Things happened to me for the first time. Let's see...

  • Bought first domain and first domain was 'stolen' from me: The first part of this statement is actually a half-lie. I used to have a domain, but the first year was free, so technically I didn't buy it. Let's talk about the second part that is more interesting. My app was supposed to be called MyScores instead of MyScore, but when I was shopping around and checking prices for that domain, I went to GoDaddy and... of course never bought from them, but the next day when trying to buy from name.com I found it had been taken! Quick look at whois.net showed me this: Well, GoDaddy, I never asked you to register what I searched for... I'll be more cautious next time.
  • Practiced creating elements with different display and position properties: Words like flexbox, sticky, absolute became my friends. A website describing the rules that apply to them turned out to be my most visited website in the last couple weeks.
  • Used Axios and Promises for the first time: And what an experience it was. This is a crucial functionality of my web app. I couldn't make it work without asynchronous functions. What I found out about them? They take time to understand and it doesn't come easy.
  • Found that Prettier doesn't get along with Django tags: Decided to use Beautify instead. As Prettier seems to be way more popular, I'm not done with it. I'll give it a second chance.
  • Got my first experience with Google Analytics: Oh, Google. When I watch your trackers I'm kinda scared. If this is what you know about my users, I'm afraid to think of what you know about me.

Next steps

I like having goals even if I'm making them for myself. I write them down on sticky notes and put them on my laptop. This way they remind me every day what I should do next. So what are they currently saying?

For the website:

  • SEO: I'm totally new to this. It would be nice to see my page showing up in Google, not only when I put site:myscore.golf in the search bar. Organic traffic is the traffic we always hope for. That being said, let me know if you have tips and tricks for me.
  • Figure out why my emails go to spam: Being new to things is not easy. I've never created a web app that would send emails to the users. I went with SendGrid. It wasn't difficult to make it work, but it's an effort to make it work well. When an email is sent to a GMail account, it always lands in the spam folder. Why? Still a mystery to me, but I will find out!
  • New features: Practice, practice, practice. I have ideas of features I would like to add. The app works, but it's time to make it even cooler. Every new line of code is a way to learn.

For myself:

  • Continue learning jS: I was focused on building this web app, so the course on Udemy I've started had to wait. Udemy, we haven't seen each other for a while, but...
  • Build portfolio: Yes, the time has come. I was thinking about for a while, but felt like I didn't have enough to share. Now, when I have a fully functional web app that I'm proud of, it's time to do it.
  • Learn more than just jS: The plan looks pretty straight-forward now. Two things on the horizon: Node and React. And my boat is headed that way.

See you in a flip.

Find my code on GitHub:

GitHub logo lwolczynski / Scores-Tracker

Web app that creates a personal scorecard to compete with friends at golf, disc golf or foot golf

Discussion (6)

pic
Editor guide
Collapse
xuchunyang profile image
徐春阳

Good work. I'm learning web dev by myself for nearly 2 month. I always want to create a website that can signup, login and remeber login state. I tried (signup, login, logout, add data) your website, it works without any issue, though I know nothing about golf

Collapse
lwolczynski profile image
lwolczynski Author

Thank you for giving it a try! I don't know much about golf either. Golf was just an excuse to practice coding for me. Check out the source code on GitHub (file views.py will be the most interesting for you) and you will find out it's easier than you think! If you need any help, I will be happy to send you a couple tutorials I used

Collapse
leesmith profile image
Lee Smith 🍻

Nice work! This would be a perfect app for a PWA.

Collapse
andrewbaisden profile image
Andrew Baisden

Really cool app good job. Its projects like this that inspire others to create things.

Collapse
rdreidmss profile image
Robert

Cool app. Shared it with my son who plays frisbee golf.

Can you share why you decided to implement your own identity system vs. using existing identity providers?

Collapse
lwolczynski profile image
lwolczynski Author

Thank you for sharing my work! I decided to do everything from scratch to learn and practice. That includes user authentication. I followed Django guidelines to make it secure. I may add 3rd party authentication in the future though!