FSF (Faculty Staff Fitness) is an app where users join teams and compete against other teams based on the number of steps they take. It is event-based with one event held each month. The project consists of two parts: a web application for event organizers and a mobile application for users. We are also using Starlight for the documentation of the project.
- Node.js
- npm (Node Package Manager)
-
Clone the repository:
git clone https://github.com/OregonStateUniversity/osu-fsf.git
-
Navigate to the web app directory:
cd src-web-app
-
Install the dependencies:
npm install
-
Start the development server:
npm run dev
-
Clone the repository
git clone https://github.com/OregonStateUniversity/osu-fsf.git
-
Navigate to the mobile app directory:
cd src-mobile-app
-
Install the dependencies:
npm install
-
Start the Expo development server:
npm run start
Everything you need to know about the project is in the Starlight documentation.
- Clone the repository:
git clone https://github.com/OregonStateUniversity/osu-fsf.git
- Navigate to the Starlight directory:
cd src-docs
- Install the dependencies:
npm install
- Start the development server:
npm run dev
The web application is used by event organizers to create and manage events. Once the server is running, navigate to the provided URL to access the application.
The mobile application is used by users to join events, track their steps, and compete with other teams. After starting the Expo server, use the Expo Go app on your mobile device to scan the QR code and interact with the application.
- If you are having trouble, make sure your internet connection is set to private on your laptop and mobile device, make sure your network has device discovery enabled (For example, OSU secure does not work with Expo Go), make sure your firewall is not blocking the connection, and make sure your mobile device is on the same network as your laptop. If you are still having trouble, try using the tunnel option in the Expo Go app. If you are using a Mac and still having trouble, try using the ios emulator (Windows does not support ios emulators).
- The backend is built using Supabase, a cloud database service. Supabase provides a RESTful API for interacting with the database. The web application creates events by adding rows to the events table in the database. The mobile application retrieves the events from the database and allows users to join events and track their steps.
- The mobile application uses the device's pedometer to track the number of steps taken by the user. Their progress is tracked in chunks in the ActivityProgress table.
- The web application uses SvelteKit. The routing system is based on the file structure of the project. The /events homepage is in src/routes/events/+page.svelte.
- No, the web app is only for event organizers. Users can only access the mobile app.
- The mobile app uses Redux to manage the state of the application. When the app is loaded, it makes a request to the Supabase API to retrieve the events. The events are stored in the Redux store and displayed in the app.
- No, the project is still in development and is not ready for production. Mostly all of the functionality is there, but there some features and design elements that need to be added.