PROJECT OVERVIEW:
The purpose of this project is to deliver an improved, all encompassing disc golf tracker to help users find their frisbees quicker and view their performance. To start the software, simply go to the website, create an account, and you will be redirected to the web application. From there connect your tracked disc to your account on the web app and start playing!
This software includes: Add or remove tracked discs, view flight stats, record throws for better insights, use tracking functionality to find discs quicker.
WANT TO REPORT A BUG OR SUGGEST A FEATURE? Contact Us: moshernat@hotmail.com, wearewebtastic@gmail.com
USER DOCS:
- Interface incorps WCAG AA styling to comply with ADA standards for web development.
- The color palate and typeface choice are an improvement from the original prototype. Improving readability by using a San Serif typeface (Inter) via Google Fonts for free-use purposes.
- Colors will not cause conflict with readability. This is verified by WEBAIM.org https://webaim.org/resources/contrastchecker/.
DEVELOPER DOCS:
- Landing page was created using Next.js with TailwindCSS and typescript for styling. Universal styles have been applied to meet WCAG AA standards. For backend, file structure was established with 2 groups to deliniate between the website and web app. This is show using () in the naming of folders for organization purposes.
- Components and other TSX styling is shown in PascalCase, with database using snake_case.
- Configs for auth have been started, the .env.local file is being used to handle environmenal variables as well as backend API keys. Additional API calls are being routed through the api folder in the project. NOTE: Env files are NOT public and are shared privately between contributors
- Backend Server will be done in GO, this interacts as the port for the web application to interact with the devices and send data packets for the web app to process and serve to the end user. Recharts, a Next.js library is going to handle the visualization of the data in chart and card form.
- Embedded system will be written in C/C++ and flashed onto physical device memory.
HOW TO OBTAIN SOURCE CODE: This is shared through Github and downloading dependencies. To know which ones are to be downloaded, please refer to the project package.json file and do command "npm ci". This reads the package.json and package-lock.json and does a clean install. Do this instead of the general "npm install" as that will much cleaner to work with for CI/CD pipelining.
Planned Directory Structure: Aformentioned in developer docs. How to Build/Test: See Getting Started in bottom of this Readme file. How to release a version: Go to github releases, draft a new release. This will create a new verison to be tracked. Bug tracker (See Issues in GitHub): Next.js Bugs/ Warnings
Sprint Backlogs: https://docs.google.com/document/d/16ZOI3ZHT498dK0WAmcIgPP1SnBpY4iGB3s9eKXZxDik/edit?usp=sharing
- Frontend | Next.js, TailwindCSS
- Backend & DB | Go, PostgreSQL with Drizzle ORM, NeonDB, C
- Auth/Proxy | NextAuth.js
- Hardware | Antenna integrated GPS module SKM52, XIAO RP2040, Disc Golf Driver
To run development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun devOpen http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.