Setup Development Environment
The following section describes the setup process for the native app development environment, as it is the main focus of the project. For testing purposes or web-only bug fixing, we recommend using the more lightweight web development environment.
Prerequisites
-
Fork the repository and clone it to your local machine.
-
Install the required software:
- Visual Studio Code
- Xcode (for iOS development, macOS only)
- Android Studio (for Android development)
-
Install the required dependencies:
-
In addition is recommended to use the Biome extension for your IDE to get real-time feedback on your code.
-
Install project dependencies by running the following command in the project directory:
bun install
-
Setup the emulator
Android (Windows, macOS, and Linux):
- Follow the official guide to set up the Android emulator.
iOS (macOS only):
- Follow the official guide to set up the iOS simulator.
-
Copy the
.env.local.example
file to.env.local
and fill in the variables.
See the notes on the API key.
EXPO_PUBLIC_THI_API_KEY=abc123 // [!code --]
EXPO_PUBLIC_THI_API_KEY=SUPER_SECRET_API_KEY // [!code ++]
-
Create a development build for your desired platform.
bun ios bun android
Step 8 is required every time the dependencies are updated.
Development
-
Create a new branch from your fork to contribute to the project. Use a descriptive branch name.
-
Make your changes and ensure that the code follows our coding style and conventions.
-
Run the app locally with Expo by running the following command in the project directory:
bun dev
This allows you to run the app one the previously created development build. Expo Go is not supported for development.
Submitting Changes
- Commit your changes to your branch. To ensure descriptive commit messages and automatic changelog generation, we require using the Angular commit message style for your commit messages.
- Create a pull request from your branch to the develop branch of this repository.
- Provide a clear and descriptive title and description for your pull request, summarizing the changes you made. Also make sure use the Angular commit message style for the pull request title.
- Once your pull request is submitted, our team will review your changes and provide feedback or request further modifications if needed.
Details on the Angular commit message style:
<type>(<scope>): <short summary>
│ │ │
│ │ └─⫸ Summary in present tense. Not capitalized. No period at the end.
│ │
│ └─⫸ Commit Scope: animations|bazel|benchpress|common|compiler|compiler-cli|core|
│ elements|forms|http|language-service|localize|platform-browser|
│ platform-browser-dynamic|platform-server|router|service-worker|
│ upgrade|zone.js|packaging|changelog|docs-infra|migrations|
│ devtools
│
└─⫸ Commit Type: build|ci|docs|feat|fix|perf|refactor|test
Code Style
-
Follow the existing code style and conventions used in the project.
-
Use meaningful variable and function names to improve code readability.
-
Document your code when necessary using inline comments.
-
Follow the existing code style and conventions used in the project.
-
Use meaningful variable and function names to improve code readability.
-
Document your code when necessary using inline comments.
You can use the following commands to check and format the code:
bun lint
to check for linting errorsbun fmt
to format the code using Biome
Issues and Discussions
- Feel free to open an issue if you encounter a bug or want to suggest an improvement.
- For questions or more general concerns, create a thread in the discussion tab.