⚠️ CAUTION: This project is under active development.
Workstand is a basic membership sign-in and bicycle management web application developed for the Bridge City Bicycle Co-operative (BCBC). It allows the BCBC to collect usage data for their shop. This helps with program planning, grant reporting, volunteer management, and more.
This app is developed using Sveltekit, Typescript, Superforms, and Pocketbase.
Follow these steps to get the project up and running on your machine.
-
Create your own local
.env
file.- see
.env.example
for an reference.
- see
-
Download and install Pocketbase
- On macOS it's easiest to use Homebrew:
brew install pocketbase
- On macOS it's easiest to use Homebrew:
-
Start Pocketbase:
./pocketbase serve
-
Go to the Admin UI (via the URL in your terminal).
-
It will prompt you to set up an email and password which will need to match your
.env
file. -
Manually create a user record in the
users
collection. -
Complete the development steps below, then login using the info created above.
Once you've installed dependencies with npm install
, start a development server:
npm run dev
# or start the server and open the app in a new browser tab
npm run dev -- --open
To create a production version of your app:
npm run build
You can preview the production build with:
`npm run preview`.
NOTE: To deploy your app, you may need to install an adapter for your target environment. You will also need a place to host the Pocketbase server, which may be anywhere pocketbase can be installed but could also be a cloud provider like pockethost.io or Fly.io.
All contributors and maintainers are required to adhere to the Bridge City Bicycle Co-operative Policies. Please treat each other with the same respect and courtesy online as you would in person at the shop.
For questions, disputes, or clarifications, contact the BCBC Digital Committee at [email protected].
Workstand is currently under active development and is not ready to accept contributions. If you are interested in volunteering for the BCBC Digital Committee, please email [email protected] and we'd be happy to talk.