-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add README.md and CONTRIBUTING.md files
- Loading branch information
1 parent
c9238dd
commit b052e03
Showing
2 changed files
with
252 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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). |