- The AwArea project is a web and mobile application that allows users to set up and manage their own action and reaction rules.
- It's heavily inspired by IFTTT and Zapier.
- Follow the NestJS architecture
- Use the NestJS CLI to generate modules, controllers, services, etc.
- Use the NestJS style guide
- Follow the Flutter architecture
- Check out the Technologies document for more information.
Language / Tools | Link | Description |
---|---|---|
Docker | Docker is used to containerize the application, the api and the database. | |
MongoDB | MongoDB is used as the database for the application. (not mandatory if using Docker) | |
NodeJS | NodeJS is used to run the application. (not mandatory if using Docker) | |
TypeScript | TypeScript is used to write the application. | |
Flutter | Flutter is used to write the mobile application. | |
Git | Git is used for version control. |
- Clone the repository:
git clone git@github.com:UwUClub/AwARea.git
- Install dependencies:
- Check each link from the Prerequisites section.
- Run
npm install
in the api directory of the project.
- Set up environment variables:
- Create a
.env
file in the api directory of the project. - Copy the contents of
.env.example
into.env
. - Fill in the values for the environment variables.
- Create a
- Backend not working: Check if the MongoDB server is running and if the environment variables are set correctly.
- src : Contains the source code of the backend.
- Each folder contains a module of the backend except for
_utils
which contains the common utils of the backend.
- Each folder contains a module of the backend except for
- test : Contains the tests of the backend.
- lib : Contains the source code of the mobile and web application.
- UI : Contains the UI code of the mobile and web application.
- Core : Contains the Locator and the Manager of the mobile and web application.
- l10n : Contains the localization of the mobile and web application.
- Utils : Contains the common utils of the mobile and web application.
- test : Contains the tests of the mobile and web application.
- developer : Contains the developer documentation.
- user : Contains the user documentation.
Linter used : tslint and flutter_lints.
Formatter used : prettier.
Each work repository has its own linter and formatter configuration files.
- Main branch:
main
(protected) - Development branch:
dev
(protected) - Feature branches:
AW-<issue number>-<feature name>
ex:AW-1-Login
- Hotfix branches:
AW-<issue number>-<hotfix name>
ex:AW-1-LoginFix
- Release branches:
v<version number>
ex:v1.0.0
- Tagging:
v<version number>
ex:v1.0.0
- Pull requests:
AW-<issue number>-<feature name>
ex:AW-1-Login
- Commit messages:
<Verb> <Description>
ex:Add Login feature
- Feature branches are merged into the
dev
branch via pull requests. - Pull requests are reviewed by at least one other team member.
- Pull requests are merged into the
dev
branch after approval. - Pull requests are merged into the
main
branch after a release.
- Unit tests are written for all backend and frontend code.
- Make a script for your tests
- docker compose up
- Discord
This document is subject to change and will be updated as needed.