Compass is an AI chatbot designed to assist job-seekers in exploring and discovering their skills.
Compass has two objectives:
- Populate a digital skill wallet that captures the experience of job-seekers, including the skills inherent in their formal and informal work.
- By doing so, guide job-seekers in exploring and discovering their skills and interests based on their lived experiences.
-
Backend: Explore the Backend directory for detailed insights about the backend project.
-
Frontend: Explore the Frontend directory for detailed insights about the frontend project.
-
Infrastructure As Code (IaC): Explore the Infrastructure as code(IAC) directory for detailed insights about the infrastructure-as-code components.
-
Sensitive Data Protection: Explore the sensitive data protection functionality for detailed insights about how we are safeguarding sensitive personal data.
-
Customization Guide: Explore the customization options for detailed insights about how partners can configure branding, themes, and feature availability.
The images below show a high level overview of the solution architecture of Compass.
- Make an Impact: Your contributions will directly improve the user experience and functionality of Compass, helping job-seekers explore and discover their skills more effectively.
- Help Achieve Our Goals: By contributing, you are supporting Compass’s mission to populate digital skill wallets and guide job-seekers in understanding their skills and interests based on their lived experiences.
- Reporting Issues: If you encounter bugs or have suggestions, open an issue on GitHub. Your feedback is valuable.
- Code Contributions: Help enhance the codebase by submitting pull requests.
- Write or Improve Tests: We aim for 100% code coverage. You can help achieve this goal by writing or improving tests.
- Documentation: Improve project documentation by submitting pull requests. Clear documentation is crucial for new contributors.
- Add a New Language: Help make Compass accessible to more users by adding support for a new language. Follow the guidelines in add-a-new-language.md.
- Support: Give the project a star on GitHub—your support encourages us to keep improving!
🎉 Thank you for considering contributing to Tabiya Compass! 🎉
We follow the Prettier code formatting guidelines to make sure the code is properly formatted in a uniform way.
You can find the configuration in the .prettierrc.json file.
Note:
For IntelliJ IDEA, if you make changes to the Prettier config, you may need to restart the IDE before formatting code using the IDE’s formatting function.
We follow the PEP 8 Style Guide to ensure the backend Python code is properly formatted in a consistent way.
We use pylint (with pylint-pydantic) as our linting tool.
You can find the configuration in the .pylintrc file.
Note:
For IntelliJ IDEA / PyCharm, if you make changes to the linting configuration, you may need to restart the IDE before formatting or linting code using the IDE’s built-in tools.
Please follow the Conventional Commits format for commit messages.
To contribute to our 100% code coverage goal, refer to our "Guidelines for Readable BDD Testing" in the testing-guidelines.md
To ensure component stability, refer to our "Snapshot Testing Guidelines" in the snapshot-testing-guidelines.md
To work with this repository you should have a system with a bash compatible terminal (linux, macOS, cygwin) as most of the scripts are written for bash and will not work on windows cmd or powershell.
-
Fork the repository and clone it to your local environment.
-
Create a new branch for your changes.
-
Set up each individual subproject. e.g. if you are working on
backend/follow instructions inbackend/README.md -
After making your changes, ensure the code is clean, properly formatted and passes all tests.
You can use the provided script,
run-before-merge.sh, for assistance. This script performs checking of the code formatting, linting, building, and testing on the subprojects of the repository. To run it, use the following command:./run-before-merge.sh
If you get any errors, fix them before proceeding. A common source of errors is not fully completing step
3from above. -
Commit them and push to your fork.
-
Use descriptive commit messages following Conventional Commits.
-
Open a pull request to our main branch.
Happy contributing! 🚀
This project is licensed under the MIT License. See the LICENSE file for more information.
This project is tested with BrowserStack.






