One Voice Echo
A mobile application to record journal entries for Christians to reflect on their prayers and Bible readings while connecting with others around the world.
Table of Contents
- Introduction
- Versions and Deployments
- How to Set Up the Project
- Style Guide
- Extra Resources
Introduction
Project Goals:
- Allow users to authenticate and signup/login to their account
- Allow users to input and save a text message into the app which is then saved and stored within our database
- Allow users to record and upload voice memos into the app.
Target user:
Christians or non-christian users with faith.
Tools:
- Expo: This will be used to build and deploy our project easily.
- React Native: Is the framework we will use to create the project.
Versions and Deployments
- Expo:
~51.0.14
- React Native:
0.74.2
- React:
18.2.0
- Node.js:
20.9.0
- NPM:
6.14.15
- TypeScript:
~5.3.3
Deployment Environments
- Development: Local environment for development and testing
- Staging: Pre-production environment for final testing
- Production: Live environment for end-users
How to Set Up the Project
Prerequisites
Ensure you have the following installed on your machine:
- Node.js
- npm
- Expo CLI
- For iOS you need to install xcode
- For Android you need to install the Android SDK
Installation
- Clone the repository:
git clone https://github.com/Firm-Collective/ai-journal.git
cd ai-journal
- Install dependencies:
npm install
- Set up environment variables:
Create a
.env
file in the root of the project and add the necessary environment variables as outlined in the .env.example
file.
Creating a Branch
Before making any changes, create a new branch:
- Create a new branch:
git checkout -b your-branch-name
- Push the branch to the remote repository:
git push -u origin your-branch-name
Creating a Pull Request Once you've made your changes and committed them to your branch
Running the Project
-
Start the Expo server:
npm start
-
Run on iOS:
npm run ios
-
Run on Android:
npm run android
-
Run on Web:
npm run web
Additional Commands
Style Guide
Code Formatting
- Use Prettier for code formatting.
- Install the Prettier extension in your code editor.
- Ensure the code is formatted by running:
npm run format
Code Linting
- Use ESLint for linting.
- Follow the Airbnb JavaScript style guide.
- Run linting with:
npm run lint
Naming Conventions
- Files and Folders: Use camelCase for filenames and PascalCase for React components.
- Variables and Functions: Use camelCase for variables and functions.
- Constants: Use UPPER_SNAKE_CASE for constants.
Commits
- Follow the Conventional Commits specification.
- Example commit message:
feat: add new feature
or fix: correct a bug
.
Extra Resources