From 1c5dc2dfae163c447661761bd0867261637cbf78 Mon Sep 17 00:00:00 2001 From: Luckyjoseph <86261536+Luckyjoseph@users.noreply.github.com> Date: Tue, 26 Nov 2024 23:35:39 +0100 Subject: [PATCH 01/20] I just updated the readme --- README.md | 82 +++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 61 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 3c0212165..946e58651 100644 --- a/README.md +++ b/README.md @@ -1,43 +1,83 @@ +![Oky Logo](https://cdn-jeekn.nitrocdn.com/YMylMApFOdicfeUXuODDpSFiUbWeZeKg/assets/images/optimized/rev-3ff2ed2/oky.nyc3.cdn.digitaloceanspaces.com/2020/12/oky-primary-logo-rgb.png) + # Period tracker -This is a period tracker application monorepo, consisting of a React Native app, a CMS and an API. +Oky is the world’s first period tracker app for girls and created with girls. + +It provides information about menstruation in fun, creative and positive ways, straight into girls’ hands through the tools they use every day – mobile phones. + +Oky lets girls feel in control and more confident by tracking their periods, and getting the information that all girls should know. + +# Oky's Features +- :calendar: Calendar + +>Oky’s calendar predicts your period with daily or monthly views, becoming more accurate with tracking. However, irregular periods may cause occasional inaccuracies. + +- :girl: Personalise Oky + +>Customize your Oky experience by selecting a guiding friend and theme, with the option to change them anytime. + +- :two_women_holding_hands: Buddies + +>Personalize your Oky app by choosing a guiding friend and theme, and switch them whenever you like! + +- :notebook_with_decorative_cover: Encyclopedia + + +>Oky’s encyclopedia provides expert-reviewed information on periods and the body, with content tailored for girls with disabilities. + +- :ledger: Daily Diaries + +>Track your feelings daily to understand yourself better, with health tips and fun quizzes to help you learn more! + +# Oky's Principles + +- :girl: Girl-led design + +>Oky was designed with input from girls in Mongolia and Indonesia, ensuring it stays relevant by letting them shape its design, features, and name. -[Install Software Dependencies](./docs/dependencies/index.md) +:video_game: Gamified Approach -[Set Up the Project](./docs/setup.md) +>Oky is a girl-centered app that combines gamification for fun learning and discreet period tracking. Users can personalize avatars, unlock features, play quizzes, and enjoy positive, stigma-free content. -[Start the Project](./docs/start_project.md) +- :girl:Design for girls digital realities -[Run the project locally](./docs/run_project.md) +>Oky is lightweight, offline-friendly, supports shared phones, and has secure passcode protection, all tailored to girls' contexts and languages. +- :heavy_check_mark:Evidence-based content -[Test the Project](./docs/tests.md) +>Oky provides expert-vetted, girl-friendly information on menstruation, puberty, and reproductive health, along with referrals to support services. +- :open_hands:Open source -[Overview of deployment and architecture](./docs/deployment/deployment_overview.md) +>Oky’s open-source code and content are free to access, fostering co-creation and a global community. The code is available on GitHub under the AGPL-3.0 License, and content can be requested. -[Deploy the Project](./docs/deployment/deployment.md) +- :free:Accessible and inclusive -[Common Commands, Testing, Tips, and Tools](./docs/misc.md) +>Oky is designed with input from girls with disabilities and follows accessibility guidelines to ensure wide reach. Partners also receive expert guidance on inclusion and best practices. ---- +- :lock:Private and secure -### Localisation +>Oky prioritizes privacy by not collecting personal information. It’s password-protected, stores data locally, works offline, and only saves non-identifiable data and historic cycle dates online for cross-device access. -[Translations](./docs/localisation/translations.md) +# Oky's Users +- :girl:Oky for girls -[Updating content](./docs/localisation/updating_content.md) +>Oky is designed for girls aged 10 to 19 but is helpful for anyone learning about menstruation. It provides engaging, accessible content to manage periods and supports girls with disabilities through accessibility features. -[Lottie & image validation](./docs/localisation/asset_validation.md) +- :boy:Oky for boys ---- +>Boys can also benefit from Oky by exploring the encyclopedia to learn about puberty and other relevant topics for adolescent boys. -### Code +- :family:Oky for parents -[Contributing](./CONTRIBUTING.md) +>Oky provides parents and caregivers with information to support adolescent daughters, including those with disabilities, in managing periods and puberty. -[Submodules](./docs/modules.md) +- :school:Oky for teachers -[Importing optional submodules](./docs/code/optional_submodules.md) +>Oky offers teachers, health workers, and community members evidence-based information on menstruation, puberty, and reproductive health. It can be used in classrooms to complement lessons and engage students in a fun, educational manner. -[Understanding the CMS & API routes](./docs/code/routes.md) +# Contribution Guidelines: +Hey there! +We require all Code Contributors to -[Recommended reading for developers](./docs/code/recommended_reading.md) +- Join our organization by going through our Slack/Discord channel. It's free to join! +- Read our [CONTRIBUTING](./CONTRIBUTING.md) document and follow the steps. \ No newline at end of file From 9f7bcbaa628e6b9f446163fc51ca7e91e24e3248 Mon Sep 17 00:00:00 2001 From: Pj Metz <65838556+MetzinAround@users.noreply.github.com> Date: Tue, 26 Nov 2024 16:25:49 -0800 Subject: [PATCH 02/20] pj edits complete --- README.md | 39 ++++++++++++--------------------------- 1 file changed, 12 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 946e58651..e2ce1da98 100644 --- a/README.md +++ b/README.md @@ -2,82 +2,67 @@ # Period tracker -Oky is the world’s first period tracker app for girls and created with girls. +Oky is the world’s first period tracker app that was made with girls' input. -It provides information about menstruation in fun, creative and positive ways, straight into girls’ hands through the tools they use every day – mobile phones. +It provides important information about menstruation in fun, creative, and positive ways. And it brings it straight into girls’ hands through the tool they use most often every day – mobile phones. -Oky lets girls feel in control and more confident by tracking their periods, and getting the information that all girls should know. +Oky lets girls feel in control and more confident by tracking their periods, and getting information that all girls should have access to. # Oky's Features - :calendar: Calendar - ->Oky’s calendar predicts your period with daily or monthly views, becoming more accurate with tracking. However, irregular periods may cause occasional inaccuracies. +>Oky’s calendar predicts your period with daily or monthly views, becoming more accurate the more you use the tracking. However, irregular periods may cause occasional inaccuracies. - :girl: Personalise Oky - >Customize your Oky experience by selecting a guiding friend and theme, with the option to change them anytime. - :two_women_holding_hands: Buddies - >Personalize your Oky app by choosing a guiding friend and theme, and switch them whenever you like! - + - :notebook_with_decorative_cover: Encyclopedia - - ->Oky’s encyclopedia provides expert-reviewed information on periods and the body, with content tailored for girls with disabilities. +>Oky’s encyclopedia provides expert-reviewed information on periods and the body, with content tailored for girls with and without disabilities. - :ledger: Daily Diaries - >Track your feelings daily to understand yourself better, with health tips and fun quizzes to help you learn more! # Oky's Principles - :girl: Girl-led design +>Oky was designed with input from girls in Mongolia and Indonesia, ensuring it stays relevant by letting those who would benefit most shape its design, features, and name. ->Oky was designed with input from girls in Mongolia and Indonesia, ensuring it stays relevant by letting them shape its design, features, and name. - -:video_game: Gamified Approach - +- :video_game: Gamified Approach >Oky is a girl-centered app that combines gamification for fun learning and discreet period tracking. Users can personalize avatars, unlock features, play quizzes, and enjoy positive, stigma-free content. - :girl:Design for girls digital realities - >Oky is lightweight, offline-friendly, supports shared phones, and has secure passcode protection, all tailored to girls' contexts and languages. -- :heavy_check_mark:Evidence-based content +- :heavy_check_mark:Evidence-based content >Oky provides expert-vetted, girl-friendly information on menstruation, puberty, and reproductive health, along with referrals to support services. -- :open_hands:Open source +- :open_hands:Open source >Oky’s open-source code and content are free to access, fostering co-creation and a global community. The code is available on GitHub under the AGPL-3.0 License, and content can be requested. - :free:Accessible and inclusive - ->Oky is designed with input from girls with disabilities and follows accessibility guidelines to ensure wide reach. Partners also receive expert guidance on inclusion and best practices. +>Oky is designed with input from girls with disabilities and follows accessibility guidelines to ensure wide reach. Partners also receive expert guidance on inclusion and best practices. - :lock:Private and secure - >Oky prioritizes privacy by not collecting personal information. It’s password-protected, stores data locally, works offline, and only saves non-identifiable data and historic cycle dates online for cross-device access. # Oky's Users - :girl:Oky for girls - >Oky is designed for girls aged 10 to 19 but is helpful for anyone learning about menstruation. It provides engaging, accessible content to manage periods and supports girls with disabilities through accessibility features. - :boy:Oky for boys - >Boys can also benefit from Oky by exploring the encyclopedia to learn about puberty and other relevant topics for adolescent boys. - :family:Oky for parents - >Oky provides parents and caregivers with information to support adolescent daughters, including those with disabilities, in managing periods and puberty. - :school:Oky for teachers - >Oky offers teachers, health workers, and community members evidence-based information on menstruation, puberty, and reproductive health. It can be used in classrooms to complement lessons and engage students in a fun, educational manner. # Contribution Guidelines: Hey there! We require all Code Contributors to -- Join our organization by going through our Slack/Discord channel. It's free to join! +- Join our organization by going through our Slack/Discord channel. It's free to join! - Read our [CONTRIBUTING](./CONTRIBUTING.md) document and follow the steps. \ No newline at end of file From 9cad5edd641ea6f71e29222ab13d6d9adabb5d02 Mon Sep 17 00:00:00 2001 From: luckyjoseph Date: Wed, 11 Dec 2024 18:38:18 +0100 Subject: [PATCH 03/20] Update setup documentation for clearer project initialization steps --- docs/setup.md | 42 ++++++++++++++++++++++++++++++------------ 1 file changed, 30 insertions(+), 12 deletions(-) diff --git a/docs/setup.md b/docs/setup.md index 96df0a2a7..e8b287768 100644 --- a/docs/setup.md +++ b/docs/setup.md @@ -1,24 +1,44 @@ -## Setup +## Setting up the project -[Generate an ssh key](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent) +In setting up this project you are required to follow this steps and implement them one after the other in the following sequence regardless of your local machine. -[Add the ssh key to your GitHub account](https://docs.github.com/en/enterprise-cloud@latest/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) +- Generate and add ssh key to your GitHub Account -Clone the repository: +> To effectively run the "Oky Period Tracker" project, setting up and adding an SSH key to your GitHub account is essential for secure and seamless communication between your local machine and GitHub. SSH keys allow you to clone the repository, push code changes, and pull updates without repeatedly entering your GitHub credentials, ensuring a smoother development workflow and enhanced security for your project interactions. +> Use this to [Generate an ssh key](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent) and [Add the ssh key to your GitHub account](https://docs.github.com/en/enterprise-cloud@latest/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) + +- Clone the repository: + +> Navigate to your terminal and run the code below to clone the project to your local machine. ```bash -git clone REPO_SSH_URL +git clone https://github.com/Oky-period-tracker/periodtracker.git ``` -Note: Replace `REPO_SSH_URL` with the url for this repository. On github, click on the green _Code_ button, select SSH and copy paste the url - -Go to the root directory of the project: +> In your terminal, after successfully cloning the project to your local machine, go to the root directory of the project by running the code below: ```bash cd periodtracker ``` -Install the dependencies: +- Install the dependencies: + +> These dependencies are must-have to run the project efficiently, but if you do not have node.Js installed on your local machine, you can get it here. [Node.js](https://nodejs.org/en) afterwards, install yarn globally on your local machine. And proceed with the next step. + +on the root directory +example: + +> _C:\Users\lucky\periodtracker_ + +Run this + +```bash +yarn +``` + +Navigate to the /app directory and install the node_modules using yarn + +> _cd app_ ```bash yarn @@ -28,7 +48,7 @@ yarn There are several untracked files which need to be created for the project to run, such as .env files. These can all be created from their templates with this one command -> If your .env files already exist, re-running this command will not overwrite them +> Make sure you are at the root directory before running these commands ```bash yarn copy-config @@ -90,5 +110,3 @@ Ensure that your `app.json` file includes this: For Apple you will need to make sure you have added the [Apple Push Notifications](https://learn.buildfire.com/en/articles/5760994-how-to-set-up-your-apple-push-notification-key-for-your-ios-firebase-certificate). Read more [here](https://rnfirebase.io/messaging/usage), bear in mind that this is an expo managed project, so changes within the native `/android` and `/ios` folders are not required - -Notifications can also be customised eg the colour, via the `app.json` From 431121cdba45d7f330097615ee9bda25200c4c84 Mon Sep 17 00:00:00 2001 From: luckyjoseph Date: Thu, 19 Dec 2024 17:53:53 +0100 Subject: [PATCH 04/20] Enhance contributing guidelines with additional setup steps and Slack channel instructions --- CONTRIBUTING.md | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b0b856e8c..0f0756d52 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,11 +1,27 @@ # Contributing -Thank you for considering contributing to this project! Your efforts make a significant difference in the quality and success of this project. +👍🥳 First off, thank you for considering contributing to this project! Your efforts make a significant difference in the quality and success of this project.🥳👍 -Before contributing, please familiarize yourself with the README and documentation to get setup. +The guide assumes that you have read and understood the readme file, able to [Setup](./setup.md) the project on your local machine and familiar with JavaScript, React and Typescript. ## How to Contribute +## 1. Join the slack channel + +In the channel, send an introductory message with your GitHub handle/username asking to be added to the GitHub repository (this repository). + +## 2. Installing Git + +Before cloning your forked repository to your local machine, you must have Git installed. You can find instructions for installing Git for your operating system [here](https://git-scm.com/downloads). Please note that if you have a Mac the page offers several options. + +## 3. Fork the repository + +You can fork the PeriodTracker repository by clicking 🍴 [Fork](https://github.com/Oky-period-tracker/periodtracker/fork) . A fork is a copy of the repository that will be placed on your GitHub account. + +Note: It should create a URL that looks like the following -> https://github.com//periodtracker + +For example -> https://github.com/octocat/periodtracker. + We follow the Gitflow workflow to ensure our project's development process is organized and efficient. Here’s how you can contribute: Switch to the `develop` branch and get the latest changes From d67335a004aa555ae63771c33dce433d3d12794b Mon Sep 17 00:00:00 2001 From: luckyjoseph Date: Thu, 19 Dec 2024 21:58:33 +0100 Subject: [PATCH 05/20] Update contributing guidelines and setup documentation for clarity and organization --- CONTRIBUTING.md | 20 ++++++++++++++++++++ docs/setup.md | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0f0756d52..ce1ed6a57 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -22,6 +22,26 @@ Note: It should create a URL that looks like the following -> https://github.com For example -> https://github.com/octocat/periodtracker. +## 4. Create a new branch + +Create a branch for your changes to keep your work organized and separate from the main codebase: + +``` +git checkout -b feature/your-feature-name +``` + +After forking the repo, you can proceed with the guide on [contributing.md](./CONTRIBUTING.md) on how to setup the project in your local machine. + +### 5. Install local codebase spell checker + +You must use VS Code as your local text editor to install the VS Code extension for spell checking your codebase, Code Spell Checker. + +The recommended installation method is to install Code Spell Checker directly from the VS Code text editor, and those instructions can be found [here.](https://code.visualstudio.com/docs/editor/extension-marketplace) The extension can also be installed via the VS Code Marketplace website [here.](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker) + +For developers who do not use VS Code, use the corresponding npm package, cspell, and those instructions can be found [here.](https://www.npmjs.com/package/cspell) + +### 6. How the team works with GitHub Issues + We follow the Gitflow workflow to ensure our project's development process is organized and efficient. Here’s how you can contribute: Switch to the `develop` branch and get the latest changes diff --git a/docs/setup.md b/docs/setup.md index e8b287768..1e3fc36af 100644 --- a/docs/setup.md +++ b/docs/setup.md @@ -1,4 +1,4 @@ -## Setting up the project +Setting up the project In setting up this project you are required to follow this steps and implement them one after the other in the following sequence regardless of your local machine. From 5110536ed404fe65c548a7d182d372b5f3aca310 Mon Sep 17 00:00:00 2001 From: luckyjoseph Date: Fri, 20 Dec 2024 10:47:47 +0100 Subject: [PATCH 06/20] Fix link to setup documentation in contributing guidelines --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ce1ed6a57..d9a9c1c5e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,7 +2,7 @@ 👍🥳 First off, thank you for considering contributing to this project! Your efforts make a significant difference in the quality and success of this project.🥳👍 -The guide assumes that you have read and understood the readme file, able to [Setup](./setup.md) the project on your local machine and familiar with JavaScript, React and Typescript. +The guide assumes that you have read and understood the readme file, able to [Setup](./docs/setup.md) the project on your local machine and familiar with JavaScript, React and Typescript. ## How to Contribute From acc04e3abcdfdff991af2bacd5b64fe58a254baa Mon Sep 17 00:00:00 2001 From: luckyjoseph Date: Sun, 22 Dec 2024 09:54:15 +0100 Subject: [PATCH 07/20] Add firebase resource --- .k8s | 1 + README.md | 56 +++++++++++++++++++++++++--------------- app/src/resources | 1 + packages/core/src/common | 1 + packages/delete-account | 1 + 5 files changed, 39 insertions(+), 21 deletions(-) create mode 160000 .k8s create mode 160000 app/src/resources create mode 160000 packages/core/src/common create mode 160000 packages/delete-account diff --git a/.k8s b/.k8s new file mode 160000 index 000000000..c5d438fc5 --- /dev/null +++ b/.k8s @@ -0,0 +1 @@ +Subproject commit c5d438fc5778cf6a68a644e9e7640891655fbe2c diff --git a/README.md b/README.md index e2ce1da98..c5b359639 100644 --- a/README.md +++ b/README.md @@ -9,60 +9,74 @@ It provides important information about menstruation in fun, creative, and posit Oky lets girls feel in control and more confident by tracking their periods, and getting information that all girls should have access to. # Oky's Features -- :calendar: Calendar ->Oky’s calendar predicts your period with daily or monthly views, becoming more accurate the more you use the tracking. However, irregular periods may cause occasional inaccuracies. + +- :calendar: Calendar + + > Oky’s calendar predicts your period with daily or monthly views, becoming more accurate the more you use the tracking. However, irregular periods may cause occasional inaccuracies. - :girl: Personalise Oky ->Customize your Oky experience by selecting a guiding friend and theme, with the option to change them anytime. + + > Customize your Oky experience by selecting a guiding friend and theme, with the option to change them anytime. - :two_women_holding_hands: Buddies ->Personalize your Oky app by choosing a guiding friend and theme, and switch them whenever you like! - + > Personalize your Oky app by choosing a guiding friend and theme, and switch them whenever you like! + - :notebook_with_decorative_cover: Encyclopedia ->Oky’s encyclopedia provides expert-reviewed information on periods and the body, with content tailored for girls with and without disabilities. + + > Oky’s encyclopedia provides expert-reviewed information on periods and the body, with content tailored for girls with and without disabilities. - :ledger: Daily Diaries ->Track your feelings daily to understand yourself better, with health tips and fun quizzes to help you learn more! + > Track your feelings daily to understand yourself better, with health tips and fun quizzes to help you learn more! # Oky's Principles - :girl: Girl-led design ->Oky was designed with input from girls in Mongolia and Indonesia, ensuring it stays relevant by letting those who would benefit most shape its design, features, and name. + + > Oky was designed with input from girls in Mongolia and Indonesia, ensuring it stays relevant by letting those who would benefit most shape its design, features, and name. - :video_game: Gamified Approach ->Oky is a girl-centered app that combines gamification for fun learning and discreet period tracking. Users can personalize avatars, unlock features, play quizzes, and enjoy positive, stigma-free content. + + > Oky is a girl-centered app that combines gamification for fun learning and discreet period tracking. Users can personalize avatars, unlock features, play quizzes, and enjoy positive, stigma-free content. - :girl:Design for girls digital realities ->Oky is lightweight, offline-friendly, supports shared phones, and has secure passcode protection, all tailored to girls' contexts and languages. + + > Oky is lightweight, offline-friendly, supports shared phones, and has secure passcode protection, all tailored to girls' contexts and languages. - :heavy_check_mark:Evidence-based content ->Oky provides expert-vetted, girl-friendly information on menstruation, puberty, and reproductive health, along with referrals to support services. + + > Oky provides expert-vetted, girl-friendly information on menstruation, puberty, and reproductive health, along with referrals to support services. - :open_hands:Open source ->Oky’s open-source code and content are free to access, fostering co-creation and a global community. The code is available on GitHub under the AGPL-3.0 License, and content can be requested. + + > Oky’s open-source code and content are free to access, fostering co-creation and a global community. The code is available on GitHub under the AGPL-3.0 License, and content can be requested. - :free:Accessible and inclusive ->Oky is designed with input from girls with disabilities and follows accessibility guidelines to ensure wide reach. Partners also receive expert guidance on inclusion and best practices. + + > Oky is designed with input from girls with disabilities and follows accessibility guidelines to ensure wide reach. Partners also receive expert guidance on inclusion and best practices. - :lock:Private and secure ->Oky prioritizes privacy by not collecting personal information. It’s password-protected, stores data locally, works offline, and only saves non-identifiable data and historic cycle dates online for cross-device access. + > Oky prioritizes privacy by not collecting personal information. It’s password-protected, stores data locally, works offline, and only saves non-identifiable data and historic cycle dates online for cross-device access. # Oky's Users + - :girl:Oky for girls ->Oky is designed for girls aged 10 to 19 but is helpful for anyone learning about menstruation. It provides engaging, accessible content to manage periods and supports girls with disabilities through accessibility features. + + > Oky is designed for girls aged 10 to 19 but is helpful for anyone learning about menstruation. It provides engaging, accessible content to manage periods and supports girls with disabilities through accessibility features. - :boy:Oky for boys ->Boys can also benefit from Oky by exploring the encyclopedia to learn about puberty and other relevant topics for adolescent boys. + + > Boys can also benefit from Oky by exploring the encyclopedia to learn about puberty and other relevant topics for adolescent boys. - :family:Oky for parents ->Oky provides parents and caregivers with information to support adolescent daughters, including those with disabilities, in managing periods and puberty. + + > Oky provides parents and caregivers with information to support adolescent daughters, including those with disabilities, in managing periods and puberty. - :school:Oky for teachers ->Oky offers teachers, health workers, and community members evidence-based information on menstruation, puberty, and reproductive health. It can be used in classrooms to complement lessons and engage students in a fun, educational manner. + > Oky offers teachers, health workers, and community members evidence-based information on menstruation, puberty, and reproductive health. It can be used in classrooms to complement lessons and engage students in a fun, educational manner. # Contribution Guidelines: -Hey there! -We require all Code Contributors to + +We require all Code Contributors to do the following: - Join our organization by going through our Slack/Discord channel. It's free to join! -- Read our [CONTRIBUTING](./CONTRIBUTING.md) document and follow the steps. \ No newline at end of file +- Read our [CONTRIBUTING](./CONTRIBUTING.md) document and follow the steps. diff --git a/app/src/resources b/app/src/resources new file mode 160000 index 000000000..751538d15 --- /dev/null +++ b/app/src/resources @@ -0,0 +1 @@ +Subproject commit 751538d15793cc12d071213402d82a6f39af53ca diff --git a/packages/core/src/common b/packages/core/src/common new file mode 160000 index 000000000..f01592171 --- /dev/null +++ b/packages/core/src/common @@ -0,0 +1 @@ +Subproject commit f015921718bb8f467608368369236d7730cc6dc0 diff --git a/packages/delete-account b/packages/delete-account new file mode 160000 index 000000000..2467ea86c --- /dev/null +++ b/packages/delete-account @@ -0,0 +1 @@ +Subproject commit 2467ea86cfb073b8f114890a095b9c43f57cdf90 From 2d735d920e711748d3897e131f2bc435072279bf Mon Sep 17 00:00:00 2001 From: luckyjoseph Date: Sun, 22 Dec 2024 09:56:59 +0100 Subject: [PATCH 08/20] Refactor README for improved clarity and formatting of feature descriptions --- app/src/resources | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/resources b/app/src/resources index 751538d15..0dd590ba8 160000 --- a/app/src/resources +++ b/app/src/resources @@ -1 +1 @@ -Subproject commit 751538d15793cc12d071213402d82a6f39af53ca +Subproject commit 0dd590ba856f0ef20492ec212775406e262f17e9 From 0bcf36f135a57dae96b8c889de4cf5a5e570a452 Mon Sep 17 00:00:00 2001 From: luckyjoseph Date: Tue, 24 Dec 2024 15:29:23 +0100 Subject: [PATCH 09/20] Update setup documentation for clarity and organization --- docs/setup.md | 125 +++++++++++++++++++++++++++++++++++++------------- 1 file changed, 92 insertions(+), 33 deletions(-) diff --git a/docs/setup.md b/docs/setup.md index 1e3fc36af..67bda85f1 100644 --- a/docs/setup.md +++ b/docs/setup.md @@ -1,34 +1,42 @@ -Setting up the project +## Setting up the project In setting up this project you are required to follow this steps and implement them one after the other in the following sequence regardless of your local machine. -- Generate and add ssh key to your GitHub Account +### Generate and add ssh key to your GitHub Account > To effectively run the "Oky Period Tracker" project, setting up and adding an SSH key to your GitHub account is essential for secure and seamless communication between your local machine and GitHub. SSH keys allow you to clone the repository, push code changes, and pull updates without repeatedly entering your GitHub credentials, ensuring a smoother development workflow and enhanced security for your project interactions. -> Use this to [Generate an ssh key](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent) and [Add the ssh key to your GitHub account](https://docs.github.com/en/enterprise-cloud@latest/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) -- Clone the repository: +1. Use the [Guide to generate an ssh key](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent) -> Navigate to your terminal and run the code below to clone the project to your local machine. +2. Follow the steps to [Add the ssh key to your GitHub account](https://docs.github.com/en/enterprise-cloud@latest/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) + +### Clone the repository: + +Open your terminal and run the following command to clone the project: ```bash git clone https://github.com/Oky-period-tracker/periodtracker.git ``` -> In your terminal, after successfully cloning the project to your local machine, go to the root directory of the project by running the code below: +After cloning the project to your local machine, navigate to the root directory of the project: ```bash cd periodtracker ``` -- Install the dependencies: +### Install the dependencies: + +- Install the required dependencies: -> These dependencies are must-have to run the project efficiently, but if you do not have node.Js installed on your local machine, you can get it here. [Node.js](https://nodejs.org/en) afterwards, install yarn globally on your local machine. And proceed with the next step. + - Ensure that Node.js is installed on your local machine.[Download Node.js here](https://nodejs.org/en) -on the root directory -example: +- Install Yarn globally: + +``` +npm install -g yarn +``` -> _C:\Users\lucky\periodtracker_ +At the root directory of the project (e.g., `C:\Users\lucky\periodtracker`) Run this @@ -36,9 +44,11 @@ Run this yarn ``` -Navigate to the /app directory and install the node_modules using yarn +Navigate to the `/app` directory and install the node_modules: -> _cd app_ +```bash +cd app +``` ```bash yarn @@ -48,7 +58,7 @@ yarn There are several untracked files which need to be created for the project to run, such as .env files. These can all be created from their templates with this one command -> Make sure you are at the root directory before running these commands +- Ensure you are at the root directory before running these commands ```bash yarn copy-config @@ -56,42 +66,91 @@ yarn copy-config ## Modules -Parts of the project are kept in git submodules, such as assets and translations files, so that they can easily be switched out while still allowing everyone to share this core repo. The `.gitmodules` file is untracked so that you don't need to commit changes to the core repo in order to change which modules you are using. - -This one command will remove any submodules you currently have in your project, and download the submodules via the github URLs you have listed in your `urls.sh` - -To switch between different submodules, simply change the URLs in your `urls.sh` file, and re-run the command below +Parts of the project, such as assets and translation files, are stored in Git submodules. These submodules allow for easy swapping and sharing without affecting the core repository. -> If you have local changes / commits that have not been pushed to github, they will be lost after running this command +- To reset and download the submodules listed in your urls.sh file, run this command ```bash yarn modules ``` -> [Here](./modules.md) you will find an explanation of this command, and instructions on setting up your own module repositories +- This command removes any existing submodules and downloads new ones based on the URLs specified in urls.sh. + This one command will remove any submodules you currently have in your project, and download the submodules via the github URLs you have listed in your `urls.sh` + +- To switch submodules, update the URLs in your urls.sh file and re-run the command + + - Note: Local changes or commits not pushed to GitHub will be lost after running this command. + +Refer to [Modules.md](./modules.md) The documentation has been updated to include a detailed and organized explanation of the project setup steps. Let us know if further adjustments are needed! ## Firebase -For firebase to run, you need 3 files +Firebase Setup Documentation + +Required Files + +To set up Firebase for this project, you will need the following files: + +- `/app/src/resources/google-services.json` (Android) + +- `/app/src/resources/GoogleService-Info.plist` (iOS) + +- /`packages/cms/firebase-config.json` (CMS) + +### Initial Setup + +If you are setting up this project for the first time, follow these steps: + +- Create a Firebase Project: + +Using this [guide](https://learn.buildfire.com/en/articles/2060582-how-to-set-up-your-firebase-certificates-for-ios-and-android) to learn how to create Android and iOS project on Firebase. After learning about the steps, you can proceed to the +[Firebase console](https://console.firebase.google.com/u/0/) and create a new project for Android and iOS. + +- Set Application ID / Bundle ID: + + - In your project, locate your application id or bundle id in the `app.json` file. + + - This file should be located in the `/app/src/resources`submodule. + +- Create Firebase Apps: + +Create two apps within your Firebase project: + +- One for Android. + +- One for iOS. + +- Download the respective configuration files: + + - For Android: `google-services.json.` + + - For iOS: `GoogleService-Info.plist.` + +- Place these files in the appropriate locations as listed above. which is the `app/src/resources folder.` + +### CMS Setup + +For the CMS, follow these steps: + +- Navigate to the Firebase Console: + +- Go to Project `settings > Service accounts > Firebase Admin SDK.` -- /packages/cms/firebase-config.json -- /app/src/resources/google-services.json -- /app/src/resources/GoogleService-Info.plist +- Generate a Private Key: -If you are setting up this project for the first time, you will need to set up firebase you will need to create your own [Firebase](https://learn.buildfire.com/en/articles/2060582-how-to-set-up-your-firebase-certificates-for-ios-and-android) Project. Alternatively, if you are taking over a project, request these files from whoever has access to your firebase project. + - Click on Generate new private key. -You will need to enter your application id / bundle id. The values of these ids can be edited in your`app.json`, which should be kept in your `/app/src/resources` submodule + - A JSON file will be downloaded automatically. -You will need to have 2 apps via the [firebase console](https://console.firebase.google.com/), within your new project. An iOS app and Android app, for the react native app. Download the config files for each app and place them in the correct location, the steps can be found [here](https://learn.buildfire.com/en/articles/2060582-how-to-set-up-your-firebase-certificates-for-ios-and-android). +- Save and Rename: -For the CMS, go to: -`Project settings > Service accounts > Firebase Admin SDK > Generate new private key` + - Rename the downloaded file to firebase-config.json. -This will automatically download a json file, rename this as `firebase-config.json` and save it in the /cms folder as listed above. + - Place it in the /cms folder which is located at /packages/cms in the project. -### Push notifications +### Push Notifications -The app makes use of firebase messaging to receive push notifications from the CMS. +The app uses Firebase Messaging to handle push notifications sent from the CMS. Ensure that your `app.json` file includes this: From c8fae37e5476c454c6640733155a5352a03cdeaa Mon Sep 17 00:00:00 2001 From: luckyjoseph Date: Tue, 24 Dec 2024 15:34:56 +0100 Subject: [PATCH 10/20] Fix formatting in setup documentation for SSH key instructions --- docs/setup.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/setup.md b/docs/setup.md index 67bda85f1..1d6260fe5 100644 --- a/docs/setup.md +++ b/docs/setup.md @@ -4,11 +4,11 @@ In setting up this project you are required to follow this steps and implement t ### Generate and add ssh key to your GitHub Account -> To effectively run the "Oky Period Tracker" project, setting up and adding an SSH key to your GitHub account is essential for secure and seamless communication between your local machine and GitHub. SSH keys allow you to clone the repository, push code changes, and pull updates without repeatedly entering your GitHub credentials, ensuring a smoother development workflow and enhanced security for your project interactions. +To effectively run the "Oky Period Tracker" project, setting up and adding an SSH key to your GitHub account is essential for secure and seamless communication between your local machine and GitHub. SSH keys allow you to clone the repository, push code changes, and pull updates without repeatedly entering your GitHub credentials, ensuring a smoother development workflow and enhanced security for your project interactions. -1. Use the [Guide to generate an ssh key](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent) +- Use the [Guide to generate an ssh key](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent) -2. Follow the steps to [Add the ssh key to your GitHub account](https://docs.github.com/en/enterprise-cloud@latest/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) +- Follow the steps to [Add the ssh key to your GitHub account](https://docs.github.com/en/enterprise-cloud@latest/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account) ### Clone the repository: From 52236fbb8deee2ab12278891c3c7f0f50d00dd42 Mon Sep 17 00:00:00 2001 From: luckyjoseph Date: Thu, 26 Dec 2024 16:36:02 +0100 Subject: [PATCH 11/20] Update contributing guidelines to reflect branch naming changes --- CONTRIBUTING.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d9a9c1c5e..e3c073776 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -44,11 +44,11 @@ For developers who do not use VS Code, use the corresponding npm package, cspell We follow the Gitflow workflow to ensure our project's development process is organized and efficient. Here’s how you can contribute: -Switch to the `develop` branch and get the latest changes +Switch to the `master` branch and get the latest changes ```bash -git checkout develop -git pull origin develop # Ensure you're up to date +git checkout master +git pull origin master # Ensure you're up to date ``` 1. Create a New Branch. From f7f9e1544c241c6dd4078626cd3f131a3ce7af9a Mon Sep 17 00:00:00 2001 From: luckyjoseph Date: Thu, 26 Dec 2024 16:41:56 +0100 Subject: [PATCH 12/20] Add project setup guide link to README for improved onboarding --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index c5b359639..e0a36c906 100644 --- a/README.md +++ b/README.md @@ -78,5 +78,7 @@ Oky lets girls feel in control and more confident by tracking their periods, and We require all Code Contributors to do the following: +- Setup the project by follow this quick guide: [Project Setup](./docs/setup.md) + - Join our organization by going through our Slack/Discord channel. It's free to join! - Read our [CONTRIBUTING](./CONTRIBUTING.md) document and follow the steps. From cf3ff716f7c6b26aa4ce734b04c6abf9461172c8 Mon Sep 17 00:00:00 2001 From: luckyjoseph Date: Thu, 26 Dec 2024 21:11:48 +0100 Subject: [PATCH 13/20] Fix grammatical error in project setup instructions in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e0a36c906..d0017b265 100644 --- a/README.md +++ b/README.md @@ -78,7 +78,7 @@ Oky lets girls feel in control and more confident by tracking their periods, and We require all Code Contributors to do the following: -- Setup the project by follow this quick guide: [Project Setup](./docs/setup.md) +- Setup the project by following this quick guide: [Project Setup](./docs/setup.md) - Join our organization by going through our Slack/Discord channel. It's free to join! - Read our [CONTRIBUTING](./CONTRIBUTING.md) document and follow the steps. From 21fdfdb2fc1b56c9871ccba24df18dd0c0a923e6 Mon Sep 17 00:00:00 2001 From: luckyjoseph Date: Wed, 8 Jan 2025 15:20:22 +0100 Subject: [PATCH 14/20] Clarify wording in contribution instructions in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d0017b265..46cb10257 100644 --- a/README.md +++ b/README.md @@ -81,4 +81,4 @@ We require all Code Contributors to do the following: - Setup the project by following this quick guide: [Project Setup](./docs/setup.md) - Join our organization by going through our Slack/Discord channel. It's free to join! -- Read our [CONTRIBUTING](./CONTRIBUTING.md) document and follow the steps. +- Read our [CONTRIBUTING](./CONTRIBUTING.md) guidelines and follow the steps to contribute. From bad6aff2fc7fc4892da8d7abba73710ce4db3186 Mon Sep 17 00:00:00 2001 From: luckyjoseph Date: Wed, 8 Jan 2025 16:03:53 +0100 Subject: [PATCH 15/20] Enhance Docker setup instructions with prerequisites and detailed steps for building images --- docs/start_project.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/docs/start_project.md b/docs/start_project.md index a9396c03d..4ad4afeab 100644 --- a/docs/start_project.md +++ b/docs/start_project.md @@ -1,6 +1,21 @@ ### Build the docker images for development -In order to test the app -api-cms interaction you will have to build the docker images for development by simply running the command in the root: +### Prerequisites + +Before proceeding, ensure the following: + +- Docker is installed on your machine. Download and install Docker from the [official website.](https://docs.docker.com/compose/install/) + +- You are signed in to Docker. Use the `docker login` command in your terminal or sign in through the Docker Desktop application. + +### Steps to Build the Docker Images + +To test the app's API-CMS interaction, you will need to build the Docker images for development. Follow these steps: + +- Navigate to the Root Directory: + Open a terminal and navigate to the root directory of the project where the docker-compose.yml file is located. + +- Build the Docker Images by running the following command: ```bash docker-compose build From d8ced2ff73ff2ce44dafe83e5c1789a242e36094 Mon Sep 17 00:00:00 2001 From: luckyjoseph Date: Wed, 8 Jan 2025 16:11:33 +0100 Subject: [PATCH 16/20] Improve project startup instructions with additional details on building Docker images and running the development environment --- docs/start_project.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/start_project.md b/docs/start_project.md index 4ad4afeab..493ec96d3 100644 --- a/docs/start_project.md +++ b/docs/start_project.md @@ -21,14 +21,24 @@ To test the app's API-CMS interaction, you will need to build the Docker images docker-compose build ``` +This command will build the required images for development. + ## Start the backend/website/cms/api -To run the backend/cms and api simply run the command (ensure the images are built): +Once the images are built, you can start the backend, CMS, and API using the following steps: + +- Run the Development Environment by executing the command below to start the backend, CMS, and API: ```bash yarn dev ``` +**Notes** + +- Ensure that the images are successfully built before running the development command. + +- If you encounter any issues, verify that Docker is installed, you are logged in, and the `docker-compose.yml` file is correctly configured. + If the database was not created successfully the cms container will exit but the api/database should still be running. Running services include From a556d233aa206cd8580e932b6bf3dba76c09acf3 Mon Sep 17 00:00:00 2001 From: luckyjoseph Date: Wed, 8 Jan 2025 16:14:19 +0100 Subject: [PATCH 17/20] Format Development Adminer DB credentials section for better readability --- docs/start_project.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/start_project.md b/docs/start_project.md index 493ec96d3..3d3ec4a7c 100644 --- a/docs/start_project.md +++ b/docs/start_project.md @@ -46,13 +46,13 @@ Running services include - API: [http://localhost:3000](http://localhost:3000) - CMS: [http://localhost:5000](http://localhost:5000) -- Development Adminer DB credentials: +### Development Adminer DB credentials: - - System: PostgresSQL - - Server: postgres - - DB Name: periodtracker - - User Name: periodtracker - - password: periodtracker +- System: PostgresSQL +- Server: postgres +- DB Name: periodtracker +- User Name: periodtracker +- password: periodtracker ### Run a manual migration From 6025751d8aa9758b00a70942aec9953cdfb6a5b5 Mon Sep 17 00:00:00 2001 From: luckyjoseph Date: Wed, 8 Jan 2025 16:43:30 +0100 Subject: [PATCH 18/20] Update README for improved clarity and contribution guidelines --- README.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 46cb10257..788d57869 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Oky lets girls feel in control and more confident by tracking their periods, and > Oky’s calendar predicts your period with daily or monthly views, becoming more accurate the more you use the tracking. However, irregular periods may cause occasional inaccuracies. -- :girl: Personalise Oky +- :girl: Personalize Oky > Customize your Oky experience by selecting a guiding friend and theme, with the option to change them anytime. @@ -76,9 +76,13 @@ Oky lets girls feel in control and more confident by tracking their periods, and # Contribution Guidelines: -We require all Code Contributors to do the following: +We welcome code and on-code contributions to this project! Please follow these steps to get started: -- Setup the project by following this quick guide: [Project Setup](./docs/setup.md) +- Setup the project by following the instruction in the [Project Setup Guide](./docs/setup.md) to prepare the environment +- Start the project using the provided [Steps.](./docs/start_project.md) to start the backend, CMS, and API for development. -- Join our organization by going through our Slack/Discord channel. It's free to join! -- Read our [CONTRIBUTING](./CONTRIBUTING.md) guidelines and follow the steps to contribute. +- Connect with us on our Slack/Discord channel to stay updated, connected and collaborate! + +- Read our [CONTRIBUTING](./CONTRIBUTING.md) guidelines for detailed steps on contributing code, reporting issues or suggesting features. + +By following these steps, you’ll be ready to make meaningful contributions to the project. Thank you for your support! From da44c3e9caeb24bd2e3ba9992a90fa7a7355bf2c Mon Sep 17 00:00:00 2001 From: luckyjoseph Date: Wed, 8 Jan 2025 16:45:16 +0100 Subject: [PATCH 19/20] Correct spelling of "Personalize" to "Personalise" in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 788d57869..8b6fb1630 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Oky lets girls feel in control and more confident by tracking their periods, and > Oky’s calendar predicts your period with daily or monthly views, becoming more accurate the more you use the tracking. However, irregular periods may cause occasional inaccuracies. -- :girl: Personalize Oky +- :girl: Personalise Oky > Customize your Oky experience by selecting a guiding friend and theme, with the option to change them anytime. From 9e1be8ec648a58b231a2fae21558ba020594d2f0 Mon Sep 17 00:00:00 2001 From: luckyjoseph Date: Thu, 9 Jan 2025 16:48:11 +0100 Subject: [PATCH 20/20] Update README to rename "Contribution Guidelines" section to "How to get started" --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8b6fb1630..c210a65bc 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ Oky lets girls feel in control and more confident by tracking their periods, and - :school:Oky for teachers > Oky offers teachers, health workers, and community members evidence-based information on menstruation, puberty, and reproductive health. It can be used in classrooms to complement lessons and engage students in a fun, educational manner. -# Contribution Guidelines: +# How to get started: We welcome code and on-code contributions to this project! Please follow these steps to get started: