-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Welcome to the Hack_NCState Planning Committee! If you want to contribute to the dashboard https://today.hackncstate.org/, please review the following information. I will assume you are using Visual Studio Code but feel free to use any editor.
- Clone the repository.
- Install the Flutter SDK via these instructions.
- Open the
frontendfolder of the repo in your favorite editor. - Run
flutter pub getto install dependencies. - Run
flutter pub run build_runner watchto start the code generator. Keep this running during development. - Run the app with
flutter run -d --web-port 8080
- Install Python v3.13. If you use VSCode, install this extension
- Install the Firebase CLI via these instructions. This will allow you to emulate the backend on your local machine during development.
- Open the
firebasefolder of the repo in your favorite editor.- Open a terminal in the
functionsfolder - Run
python3 -m venv venvto create a Python environment - Run
.\venv\Scripts\activateon Windows orsource venv/bin/activateon Mac/Linux to enter the environment - Install Python dependencies with
pip install -r requirements.txt - Read through the
configurationwiki page to configure your Firebase Emulator.
- Open a terminal in the
- Run
firebase emulators:startin the root folder to start the emulator.
You can automate many of the commands by renaming the .vscode.example folders to .vscode.
- E.g.
firebase/.vscode/tasks.jsondefines a task that runs the Firebase emulator when you open the project. -
frontend/.vscode/tasks.jsondefines a task that runs build_runner when you open the project. -
frontend/.vscode/launch.jsondefines a configuration that runs the app with the necessary port - etc.. Please do this after completing setup.
While the main goal for Flutter is mobile app development, it's still pretty good for building PWAs (progressive web apps), which behave like desktop or mobile applications. I also personally think it's more pleasant to write than React, though I may be biased because I don't really know much React (I am not a web developer). I also think it's easier to pick up for new developers because the language is so similar to Java while simultaneously being optimized for app development. I encourage you to read more about how Flutter works.
Firebase offers all the tools we need (user management, live database, authentication, functions) under one roof. It's also good for rapid development that's less error-prone and handles secure API access for us. Since Hack_NCState is in February, I think repid development is very important. Also, it lets us write custom functions in Python or JavaScript which is a plus. I encourage you to read more about how Firebase works.