/disc-golf-scorecard-app

Disc Golf Scorecard App

Primary LanguageJavaScriptMIT LicenseMIT

ChainSeeker app

Project Description

ChainSeeker is my first ever full-stack web development project, dedicated to creating a utility app tailored for disc golf enthusiasts. As an avid disc golfer myself, I developed this application to meet the unique needs of the disc golf community.

Key Features:

  • Score Tracking System: Effortlessly record and monitor your disc golf rounds.

  • Create Friend Profiles: You can create friend profiles inside the app so that you can play together and keep track of everyone's scores.

  • Performance Statistics: Track and review your performance and see how well you are doing against your friends.

  • Mobile-First Design: This project was created using a mobile-first approach as the app lends itself to be used typically on the fairway.

  • Responsive Design: Enjoy the app seamlessly on various devices, making it your go-to companion during disc golf adventures.

  • Technological Showcase: ChainSeeker showcases my proficiency in full-stack development, incorporating express, nodeJS, Vite, React, Lottie, MongoDB, and Mongo Atlas.

This project is more than just a showcase of my skills; it's a passion project born out of my love for disc golf. ChainSeeker was crafted with the goal of enhancing the disc golf experience, initially for my personal use and that of a few friends. See you on the fairway!

Table of Contents

Demo

If you'd like to explore the app, you can do so by visiting https://magical-jalebi-893a82.netlify.app/

Feel free to create your own account by using an email and password, or you can use the sample account credentials:

username: Mateo
password: Password123!

Screenshots

Dashboard

Dashboard

Scorecard

Scorecard

My Stats

My Stats

Friend List

Friend List

Courses

Courses

Responsive Design

Responsive Design

Installation

Preqrequisites

  • Ensure you have Node.js and npm installed on your machine.
  • You need a MongoDB Atlas account for database connectivity.

Cloning the repository

  1. Clone the repository: git clone https://github.com/itsdavehimself/disc-golf-scorecard-app.git

  2. Navigate to the project directory: cd disc-golf-scorecard-app

Server Setup

  1. Navigate to the server directory and install dependencies: cd server && npm install

  2. Create a .env file touch .env

  3. Inside the .env file, create a port variable: PORT=8080

  4. Next create a URI variable for the MongoDB database: URI='mongodb+srv://your_username:your_password@cluster0.gnnj1tx.mongodb.net/your_database?retryWrites=true&w=majority&appName=AtlasApp'

Be sure to replace 'your_username', 'your_password', and 'your_database' with your actual MongoDB credentials.

  1. Lastly, create a SECRET variable used for authenticating logins. It can be any random string of letters, numbers, and symbols, for example: SECRET='#9XhZ@oD5TjLbN*wR$Gy8p2z!Q6AqFs7UvHc1rKmV'

  2. Navigate back to the parent directory cd ..

Client Setup

  1. Navigate to the client directory and install dependencies: cd client && npm install

  2. Again, create another .env file touch .env

  3. Inside the .env file, create an API url variable: VITE_API_BASE_URL=http://localhost:3000/api

Starting the App

  1. While inside the client directory, you can start the client by running the following code: npm run dev

  2. In a new terminal, navigate to the server folder cd server

  3. Start the server npm run dev

Usage

  1. Open your browser and navigate to http://localhost:5173

  2. You will need to create an account to login if you are running the app locally.

  3. When logged in, you will be taken to the dashboard where you can explore the different features. I suggest creating a few scorecards and friends, so that you will get to explore the statistics pages for yourself and the friend profiles.

Technologies

Frontend

  • React.js
  • Tailwind CSS
  • Lottie
  • Chart.js
  • Vite

Backend

  • Express.js
  • Node.js

Database

  • MongoDB

Development Tools

  • npm
  • Git
  • GitHub
  • Visual Studio Code
  • ESLint
  • Prettier

Features

  • User authentication with JWT
  • Responsive design for various screen sizes
  • CRUD operations for managing user data
  • Salting and hashing for encryption of password data

License

This project is licensed under the MIT License.

Attribution

The photos used in this app are sourced from the following photographers. I appreciate their creative work and contributions.

  1. Joshua Choate
  2. 24173760
  3. Andreas Thöne
  4. jrbotkin777
  5. 27707
  6. Ted Johnsson
  7. Kevin B

All photos are used in accordance with their respective licenses.

Contact

Email: davidsmolen@gmail.com