This repository has been archived on 2024-04-05. You can view files and clone it, but cannot push or open issues/pull-requests.
score-tracker/README.md

2.6 KiB

Score Tracker

Main repository: https://gitlab.sudoer.ch/sudoer777/score-tracker/

A web app designed to collect and display scores for sports

Branches

  • main - Stable, production-ready code
  • testing - Nearly complete code being tested
  • develop - Unstable code under development

Installation

This repository can be cloned and then pushed to Heroku/Dokku/etc.

Requirements

  • PostgreSQL (with an empty database created and an account to access it)

Environment Variables

  • NODE_ENV - set to production, testing, or development
  • PGHOST - set to your database URL
  • PGPORT - set to the database port
  • PGDATABASE - set to the name of your database (i.e. scoretrackerdb)
  • PGUSER - set to the user for managing the database
  • PGPASSWORD - set to the password for that user
  • PUBLIC_SUBMIT_PAGE (default: false) - set to true to allow score submissions without an account

Code

This program uses Node.js/Express.js for the backend, PostgreSQL for the database (with node-postgres), and Passport.js for managing users and sessions.

To view the code, clone the repository and open it in VSCode/VSCodium.

Structure

  • database folder contains backend scripts for managing and storing data.
  • mail folder (currenly unused) contains backend scripts for sending emails.
  • public folder contains publically accessible scripts and stylesheets for frontend.
    • scripts folder contains scripts used by specific webpages.
    • stylesheets folder contains CSS for various webpages.
  • routes folder contains various routes used by the program.
    • about.js directs to the about page (/about).
    • auth.js deals with logging in and out (/auth/*).
    • checkLoginStatus.js contains functions for checking the login status of the current user.
    • data.js sends various data to the client in JSON format (/data/*).
    • fetch.js sends more specific data formatted for specific pages in JSON format (/fetch/*)
    • index.js directs to the home page (/).
    • manage.js contains various functions that allows the user to add and edit items through the web browser (/manage/*).
  • views folder contains pug templates for each webpage, and a layout template for the base layout of each page.
  • .env.example is a template for the environment variables in a development workspace. Rename to .env and change values as needed.