/ai-journal

This is the AI Journal app / module

Primary LanguageTypeScript

OneVoiceEcho-logo

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

  1. Introduction
  2. Versions and Deployments
  3. How to Set Up the Project
  4. Style Guide
  5. Extra Resources

Introduction

Project Goals:

  1. Allow users to authenticate and signup/login to their account
  2. Allow users to input and save a text message into the app which is then saved and stored within our database
  3. 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

  1. Clone the repository:
    git clone https://github.com/Firm-Collective/ai-journal.git
    cd ai-journal
  2. Install dependencies:
    npm install
  3. 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:

  1. Create a new branch:
    git checkout -b your-branch-name 
  2. 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

  1. Run on iOS:

    npm run ios
  2. Run on Android:

    npm run android

Additional Commands

  • Running Tests:
    npm test

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