Skip to content

Commit

Permalink
Add README.md and CONTRIBUTING.md files
Browse files Browse the repository at this point in the history
  • Loading branch information
Saadaan-Hassan committed Jul 6, 2024
1 parent c9238dd commit b052e03
Show file tree
Hide file tree
Showing 2 changed files with 252 additions and 0 deletions.
77 changes: 77 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Contributing to Tutorify

We appreciate your interest in contributing to Tutorify! Here’s how you can help make the project better.

## How to Contribute

### Reporting Issues

If you find a bug or have a feature request, please [open an issue](https://github.com/Saadaan-Hassan/Tutorify/issues). Make sure to include a clear description of the problem or the feature you’re requesting.

### Suggesting Enhancements

If you have an idea for an enhancement or a new feature, please [open an issue](https://github.com/Saadaan-Hassan/Tutorify/issues) with a detailed description of your suggestion.

### Contributing Code

To contribute code, follow these steps:

1. **Fork the Repository**

Click the "Fork" button at the top right of this repository to create your own copy.

2. **Clone Your Fork**

```bash
git clone https://github.com/Saadaan-Hassan/Tutorify.git
cd tutorify
```

3. **Create a New Branch**

Create a new branch for your changes:

```bash
git checkout -b my-new-feature
```

4. **Make Your Changes**

Make your changes or add new features. Ensure your code adheres to our [code style guidelines](#code-style-guidelines).

5. **Commit Your Changes**

Commit your changes with a clear, descriptive message:

```bash
git add .
git commit -m "Add new feature or fix issue"
```

6. **Push Your Changes**

Push your changes to your fork:

```bash
git push origin my-new-feature
```

7. **Open a Pull Request**

Go to the [Pull Requests](https://github.com/Saadaan-Hassan/Tutorify/pulls) section of the repository and open a new pull request. Provide a clear description of your changes.

## Code Style Guidelines

- Use **ESLint** and **Prettier** for code linting and formatting.
- Follow the existing code style and structure.
- Write meaningful commit messages and pull request descriptions.

## Documentation

If you update or add features, please ensure that the documentation in `README.md` is up-to-date. We also appreciate contributions to the documentation to make it clearer and more helpful.

## Code of Conduct

Please follow our [Code of Conduct](CODE_OF_CONDUCT.md) in all interactions related to the project.

Thank you for contributing to Tutorify!
175 changes: 175 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
# Tutorify

Tutorify is a mobile application designed to connect students and tutors. This app allows students to find tutors based on their subjects of interest and facilitates communication between students and tutors.

## Features

- **User Profiles:** Students and tutors can create and manage their profiles.
- **Search Functionality:** Students can search for tutors based on subjects.
- **Map Integration:** Tutors and students can view each other's locations on a map.
- **Push Notifications:** Get notified about new messages and user activities.
- **Onboarding Experience:** Users get a guided tour of the app features on their first visit.

## Table of Contents

- [Technologies Used](#technologies-used)
- [Installation](#installation)
- [Configuration](#configuration)
- [Running the App](#running-the-app)
- [Building the App](#building-the-app)
- [Contributing](#contributing)
- [License](#license)

## Technologies Used

- **React Native:** For building the mobile app.
- **Expo:** For development and build tools.
- **Firebase:** For backend services including authentication and storage.
- **Mapbox:** For map and location services.
- **Yarn:** For dependency management.
- **EAS (Expo Application Services):** For building and deploying the app.

## Installation

To get started with Tutorify, follow these steps:

1. **Clone the Repository**

```bash
git clone https://github.com/Saadaan-Hassan/Tutorify.git
cd tutorify
```

2. **Install Dependencies**

Make sure you have [Node.js](https://nodejs.org/) and [Yarn](https://yarnpkg.com/) installed. Then, run:

```bash
yarn install
```

## Configuration

### 1. Set Up Firebase

Create a Firebase project and obtain the configuration details from the Firebase Console. Follow these steps:

1. Go to the [Firebase Console](https://console.firebase.google.com/).
2. Create a new project, select the platform as "Web," and register the app.
3. Navigate to "Project Settings" and find your Firebase configuration details.
4. Add the following environment variables to your `.env` file in the project root directory:

```env
FIREBASE_API_KEY=your-firebase-api-key
FIREBASE_AUTH_DOMAIN=your-firebase-auth-domain
FIREBASE_PROJECT_ID=your-firebase-project-id
FIREBASE_STORAGE_BUCKET=your-firebase-storage-bucket
FIREBASE_MESSAGING_SENDER_ID=your-firebase-messaging-sender-id
FIREBASE_APP_ID=your-firebase-app-id
```

### 2. Set Up Mapbox

Create a Mapbox account and obtain your Mapbox API access token:

1. Go to the [Mapbox website](https://www.mapbox.com/).
2. Sign up for an account or log in to your existing account.
3. Go to the "Tokens" section and create a new access token.
4. Copy the access token and add it to your `.env` file:

```env
RN_MAPBOX_ACCESS_TOKEN=your-rn-mapbox-access-token
```

5. Copy the public token and add it to your `.env` file:

```env
RN_MAPBOX_MAPS_DOWNLOAD_TOKEN=your-rn-mapbox-maps-public-token
```

### 3. Set Up Expo Updates

1. Go to the [Expo website](https://expo.dev/).
2. Log in to your Expo account, click the Profile icon, and go to the "Projects" section.
3. Create a new project.
4. Obtain your EAS project ID and add it to your `.env` file:

```env
EAS_PROJECT_ID=your-eas-project-id
```

5. Run the following commands in your project root directory:

```bash
npm install --global eas-cli
eas login
eas init --id your-eas-project-id
```

6. Run the following command to upload the .env file to EAS:

```bash
eas secret:push --scope project --env-file ./.env
```

## Running the App

Before running the app, you need to create a development build. Follow these steps:

1. **Build a Development Client**

```bash
eas build --profile development --platform android
eas build --profile development --platform ios
```

Install the resulting development build on your device or emulator.

2. **Start the Development Server**

```bash
yarn start
```

3. **Run on Android Emulator**

```bash
yarn android
```

4. **Run on iOS Simulator**

```bash
yarn ios
```

## Building the App

To create a production build of the app:

1. **Build for Android**

```bash
eas build --platform android
```

2. **Build for iOS**

```bash
eas build --platform ios
```

## Contributing

We welcome contributions to Tutorify! If you have suggestions or want to help improve the project, please follow these guidelines:

1. **Fork the Repository** and create a new branch for your changes.
2. **Make Your Changes** and ensure that your code follows the existing style and guidelines.
3. **Write Tests** for your changes if applicable.
4. **Submit a Pull Request** with a clear description of your changes.

For more details, please refer to the [CONTRIBUTING.md](CONTRIBUTING.md) file.

## License

This project is licensed under the [GPL-3.0 License](LICENSE).

0 comments on commit b052e03

Please sign in to comment.