Welcome to the repository for the 8by8 Challenge! The 8by8 Challenge is a web application intended to foster civic engagement by allowing users to perform various actions such as registering to vote or signing up for election reminders in exchange for badges. Users can also share their challenge with friends via social media. When an invited user registers to vote, or takes another similar action, the inviter also receives a badge. When a user receives 8 badges within 8 days, they have completed their challenge and will earn a reward.
Currently, we are working on migrating the existing application to Next.js and TypeScript, as well as fixing bugs, improving accessibility, etc. For the existing application's source code, please visit https://github.com/8by8-org/web-app.
You must have Node.js version 18.17+ and the Firebase CLI installed to run the local development server.
To run the application locally, fork the repository and clone the fork to your machine. In the terminal, navigate into the project directory and run npm install
. This will install the project's dependencies.
You will also need the Firebase CLI installed in order to run Firebase emulators. This should be installed globally. To check if it is installed, open a terminal and run:
firebase --version
If the output is a version number, the Firebase CLI is installed. If not, run the following command to install it:
npm install -g firebase-tools
Before running the local development server, you will need to create a .env file. You can do this by running the following command:
npm run init-dev-env
This will create a .env file if it does not already exist, or update it to ensure all required env variables are present. None of the values in this .env file point to actual resources.
You can now run the local development server with the command npm run dev
.
New engineers should review CONTRIBUTING.md for details about the recommended workflow and tools.