Creating Your Development Setup
This guide discusses setting up the Polar Edge Analytics repository for local development.
Prerequisites
This guide assumes you have the following already set up (TODO: add references on how to get these configured)
- Node.js installed; we recommend using nvm (MacOS/Linux) or fnm (Windows) to manage your Node.js version
- pnpm installed
- Docker
Desktopinstalled
LocalGet SetupScouting
Setting up the Polar Edge Analytics repository requires running a local instance of the database. We currently provide a shell script located at apps/web/lib/database/scripts/db-start.sh to do so, with plans to run this script automatically in the future.
If the repository root directory, run pnpm install to install dependencies across the entire repository. We recommend installing the turbo CLI globally to make running commands easier. This can be done by running pnpm i -g turbo.
ForDeveloping developingapplications often requires the use of environmental variables. These are used to configure various secrets and environment-specific configuration (i.e., is this running on someone's laptop or is it the hosted version of the scouting site,site). In order to prevent API keys from being leaked on the internet, these are stored in a file that is only oneon your machine and not tracked by Git.
A file titled . envenv.examplefileexists in the apps/scouting folder. This is currentlya required.template Foryou convenience,can weuse providein creating your .env.local. To create your .env.local, do the following:
- Create a copy of the
.env.examplefilewithinand rename the copy toapps/web.env.local - Create a new application in the Discord Developer Portal. After creating the app, go to the tab titled "OAuth2." Copy the
contentsclientofid value, and set DISCORD_CLIENT_ID to thisfilevalueintoinanother calledyour.env.local.Click
thethe
shareNOTE:"ResetthisSecret"filebuttonisincurrentlytheunavailable,DiscorditDeveloper portal to get the client secret, and do the same. You shouldbeNEVERshortly...SetsecretUpvalue. - Still
.env.localinTheretheareOAuth26tab,ValuesaddthattheyoufollowingneedURL toputtheinRedirects section:http://localhost:3000/api/auth/callback/discord - Add your
.env.localDiscordfile.DATABASE_URL=postgres://postgres:postgres@localhost:5432/polar_edgeAUTH_DISCORD_ID= #application id in discord developer portalAUTH_DISCORD_SECRET= #oauth secret in discord developer portalAUTH_SECRET= #generate with openssl rand -base64 32 in terminalTBA_API_KEY= #api key from tba if using tba featuresADMIN_USERS= #your_discord_user_name_hereTo get AUTH_DISCORD_ID and AUTH_DISCORD_SECRET:1.Gousername tohttps://discord.com/developers/applications2.Click on New Application and Make a New Application3.Go to OAuth24.Client ID is found under the Client Information Tab, and Reset Secret for Client Secret.To get AUTH_SECRET, go on terminal and run "openssl rand -base64 32 in terminal". Make sure to put this in "".To get TBA_API_KEY, go onhttps://www.thebluealliance.com/accountand make a new API Key.ADMIN_USERS is your discord username.After .env.local is Set UpOnce dependencies are installed andthe.env.localfilesforareADMIN_USERS.configured,This value is shown in the bottom left corner of Discord
This should be all the setup required for everyday development of the scouting application. To get the development server canrunning, befirst runensure via:
have Docker running. RunningBasecamp(ing)pnpm dev:scoutingorturbo dev#--filterifscoutingturbowillCLIlaunchinstalledthegloballydatabase,pnpmandrunstartdevup#theifscoutingturboapp.CLIGet
not installed globally
WIP, docs coming soon as this is a bit more complicated...