Skip to content

An open source application for easier scouting at First Robotics competitions

License

Notifications You must be signed in to change notification settings

FRC-Team3484/open-scouting

Repository files navigation

Open Scouting logo

Open Scouting

An open source application for easier scouting at First Robotics competitions

ReleasesIssuesDevelopment branch

Open Scouting screenshot on mobile

Features

  • Save data offline in case of poor connection in the stands
  • Work with The Blue Alliance's API to grab match data allowing to autofill team numbers
  • Tie multiple clients together into a "session" so all the devices can be sent to the next match simultaneously
    • This will iterate the match number and help autofill some additional information
  • Auto jump to the next section that needs filled out
  • Have an custom interface for viewing all the collected data
  • Have a system for quickly setting up all the required data entries for a new season
    • Have fields to quickly set up and provide to the user when scouting, e.g. "text", "boolean", "data" ect.
  • Allow other teams to view and contribute data to the same server
  • Create custom events if events aren't listed on TBA
  • Keep backups of scouting reports locally
  • Dark/light mode theme support
  • Manually go offline in case of bad connection

Installation

The installation and deployment process uses docker for simplicity.

Development

Follow the steps in Development Installation for how to get Open Scouting up and running locally for development or contributing

Production

First, ensure you have docker, docker-compose, and git installed on your system

Next, clone this repository

git clone https://github.com/FRC-Team3484/open-scouting
cd open-scouting

Now, copy .env-template to a new file called .env

cp .env.production.template .env.production

You'll want to change several of these variables in .env

  • DEBUG - False

  • SECRET_KEY - Generate your secret key using django.core.management.utils.get_random_secret_key()

  • ADMIN_PATH - Change this to a random string or something specific that only you would know, protects the admin page from attacks

  • TBA_API_KEY - Replace with your TBA API key, generated here

  • SERVER_IP - Replace with the IP address and port that the server will be accessed at

  • CSRF_TRUSTED_ORIGINS - Replace with a list containing the IP address that the server will be hosted on

  • POSTGRES_PASSWORD - Replace with a password for the postgres database, this should be long and hard to guess

The following variables are for the superuser that is created when the server starts for the first time, this is the main administrator account that is used to access the /admin page.

  • DJANGO_SUPERUSER_USERNAME - Replace with your superuser's username (Make this equal to your email if you want to use this account inside of Open Scouting for contributing)
  • DJANGO_SUPERUSER_PASSWORD - Replace with your superuser's password
  • DJANGO_SUPERUSER_EMAIL - Replace with your superuser's email

Additionally, you should configure the environment variables for setting up emails

![NOTE] If you're having issues with pip being able to resolve the DNS name, you may need to restart your docker daemon using sudo systemctl restart docker

Finally, building and running the server is as simple as running the following

docker compose up --build -d

Subsequent starts should be run using

docker compose up -d

The server should now be working!

You should navigate to the /admin page (or whatever your admin path is) and access your new superuser, and fill in some values for the Profile object to prevent any errors when attempting to use this account

Contributing

Contributions are welcome to this project! Please see the issues page or the roadmap for any current bugs or features that need implemented.

You can view the guide on how season_fields.py is formatted here if your contribution involves this file

When contributing, please fork this repository (ensure you uncheck the "Copy the main branch only" check box, this gives you access to the development branch with the latest changes)

Next, create a new branch and implement your changes. You can install this project locally for testing by following the steps in Development Installation. Once you've made your changes, please open a pull request into the development branch, and your changes will be reviewed.

Eventually, development will be merged into main and your changes will be released into production with a new release. Thanks for your contribution!

To-Do

Please see the roadmap for the currently planned out things that need to be completed. Additionally, see the issues page for any current bugs or features that need implemented, but aren't officially scheduled.