Skip to content

Commit

Permalink
Merge branch 'main' of github.com:TAMUSHPE/MobileApp
Browse files Browse the repository at this point in the history
  • Loading branch information
JasonIsAzn committed Jan 17, 2024
2 parents 4ea87fe + 8e3d807 commit 52d9840
Show file tree
Hide file tree
Showing 200 changed files with 16,361 additions and 13,394 deletions.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,3 +25,7 @@ npm-debug.*

# Temporary files created by Metro to check the health of the file watcher
.metro-health-check*

.env*
google-services.json
GoogleService-Info.plist
6 changes: 3 additions & 3 deletions App.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import 'react-native-gesture-handler';
import React, { useContext, useEffect, useRef } from "react";
import React, { useEffect, useRef } from "react";
import { Alert } from 'react-native';
import { SafeAreaProvider } from 'react-native-safe-area-context';
import AsyncStorage from "@react-native-async-storage/async-storage";
import * as Notifications from 'expo-notifications';
import { UserProvider } from './src/context/UserContext';
import RootNavigator from './src/navigation';
import { SafeAreaProvider } from 'react-native-safe-area-context';
import AsyncStorage from "@react-native-async-storage/async-storage";
import { auth } from './src/config/firebaseConfig';
import { getUser } from './src/api/firebaseUtils';
import { eventEmitter } from './src/context/eventEmitter'; // Adjust the path as necessary
Expand Down
149 changes: 76 additions & 73 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,4 @@
<a id="readme-top"></a>

[![Contributors][contributors-shield]][contributors-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]

<h1 align="center"> SHPE Mobile App</h1> <br>
<h1 align="center"> TAMU SHPE Mobile App</h1> <br>
<p align="center">
<a href="">
<img alt="SHPE Logo" title="SHPE" src="https://shpe.engr.ucr.edu/sites/default/files/styles/form_preview/public/SHPE_logo_IconOnly_FullColor-RGB_0.png?itok=_YzN6NAC" width="250">
Expand All @@ -15,30 +9,15 @@
Your Famila, Our Mission.
</p>

<p align="center">
<a href="">
<img alt="Download on the App Store" title="App Store" src="https://logos-world.net/wp-content/uploads/2021/02/App-Store-Symbol.png" width="140" height="50">
</a>
<a href="">
<img alt="Download on the App Store" title="Play Store" src="https://cdn.freebiesupply.com/logos/large/2x/google-play-badge-logo-png-transparent.png" width="140" height="50">
</a>
</p>

## About The Project
## Introduction

We are excited to introduce our mobile app project for the Society of Hispanic Professional Engineers (SHPE). This app aims to serve as an information hub and a valuable resource for our members. With a focus on enhancing member engagement and providing access to important resources, the app will play a pivotal role in connecting and empowering our familia.
The TAMU SHPE mobile application, designed for the Texas A&M University Chapter of the Society of Hispanic Professional Engineers, is a tool aimed at enhancing member interaction and engagement. This application brings together a host of features, each developed to streamline organizational processes and encourage community involvement.

### Built With
Central to its functionality is an integrated Events and Point Management System that simplifies event coordination and tracks member participation. Its Committee Management feature streamlines the functioning of group activities.. The MemberSHPE Verification System ensures accurate membership identification.

[![React Native](https://img.shields.io/badge/react_native-%2320232a.svg?style=for-the-badge&logo=react&logoColor=%2361DAFB)][React-Native-url] [![Expo](https://img.shields.io/badge/expo-1C1E24?style=for-the-badge&logo=expo&logoColor=#D04A37)][Expo-url] [![Firebase](https://img.shields.io/badge/Firebase-039BE5?style=for-the-badge&logo=Firebase&logoColor=white)][Firebase-url]
Further enriching its capabilities, the app houses a Resume Bank, complete with verification processes to guarantee the integrity and confidentiality of professional documents. Additionally, the Test Bank offers an extensive array of study resources to aid members in their academic pursuits.

## Table of Contents

1. [Getting Started](#getting-started)
- [Dependencies](#dependencies)
- [Setup](#setup)
2. [Usage](#usage)
3. [Contact](#contact)
TAMU SHPE is build with react native, expo, typescript, firebase,

## Getting Started

Expand All @@ -48,28 +27,34 @@ Various dependencies are required in order to test and build the application. Th

- [Node.js][Node-url]
- [Yarn][Yarn-url]
- [Java 11][Java-url] (Oracle JDK)
- [Java 11][Java-url]
- iOS/Android emulator
- The iOS emulator is only available on mac devices. The SDK can be installed via Xcode.
- The Android emulator can be installed via [Android Studio] [Android-Studio-url].
- Internal Build (ios only)
- A build created for internal use within the development team and can be downloaded on a developer's physical mobile device
- Ask repo maintainer for link to internal build
- Emulator not required

Any extra information about environment setup can be found [here](https://reactnative.dev/docs/environment-setup).
### Other dependencies

There are more dependencies that aren't necessarily required to run the application, but can be handy when testing:

- [Expo Go][Expo-Go-url]
- App for testing on a physical mobile device. If you're running the app, make sure the device is connected to the same network as the development server device.
- [EAS][EAS-url]
- Used for building application utilizing EAS Build which can host app binaries on the cloud
- [Tailwind CSS IntelliSense][Tailwind-url]
- autocomplete for tailwind css
- [ngrok][ngrok-url]
- Used for creating a secure tunnel when using `npx expo start --tunnel`.
- This used to be required when running expo on windows, however this is no longer the case.
- Used for creating a secure tunnel when using `yarn start --tunnel`.
- This is useful when developing on school wifi
- [React native snippets for VSCode][React-Native-Snippets-url]
- These can be handy for generating boilerplate code for things like screens or components which repetitive templates.
- [EAS][EAS-url]
- Used for building application utilizing EAS Build which can host app binaries on the cloud

### Setup
## Setup

Once the basic dependencies are installed, you're almost ready to go. For the app to work as intended, create an [Expo Account][Expo-url]. Then, ask a repo maintainer for access to the project. This will allow push notifications to work correctly and will let the app build on expo-go.
Once the basic dependencies are installed, you're almost ready to go. For the app to work as intended, create an [Expo Account][Expo-url]. Then, ask a repo maintainer for access to the project. This will allow push notifications to work correctly.

When your account has been added, open a terminal and navigate to the directory of the application. Afterwards, execute the following to install any node module dependencies:

Expand All @@ -80,7 +65,7 @@ $ yarn
Once finished, the application can be started using the following:

```
$ npx expo start
$ yarn start
```

There are other flags that must be added depending on how the app is being tested:
Expand All @@ -90,57 +75,71 @@ There are other flags that must be added depending on how the app is being teste
- `--dev-client` - This flag launches a development server
- `--localhost` - This flag hosts the server locally instead of on LAN. This is useful when connecting and you don't have a network or are on public wifi and want to connect your physical phone via a cable.

There are also various macros in `package.json` under the "scripts" key which can be used via `yarn <script-name>`. For example, `yarn go` will run `npx expo `
There are various macros in `package.json` under the "scripts" key which can be used via `yarn <script-name>`. For example, `yarn go` will run `npx expo start --go`

Now that you know how to launch a server, there are multiple methods for development

### Method 1 - internal build **[Recommended for IOS]**

- Download the internal build provided by repo maintainer
- Run `yarn start`
- Scan QRCode provided by the server

### Method 2 - Emulator **[Recommended for Android]**

There are two main ways to build the application: locally and with EAS. To build locally onto an emulator, simple execute the following:
- Download the emulator
- Run `yarn build-android` or `yarn build-ios` at least once (Note: if you download a new dependency/package then this must be ran again)
- Run `yarn start`
- Press "a" or "i" to open android or ios emulator, respectively

### Method 3 - Expo App **[Recommended for quick setup]**

- Download Expo App
- Run `yarn go`
- Scan the QRCode provided by the server

## Deployment **[For Repo Maintainer]** - TODO: Need more details

To build using EAS, the following the documentation was used [here][EAS-url]. This will build and host the application on the cloud. EAS building will be required when deploying the app onto the Apple App Store and the Google Play Store.

```
$eas build
```

```
$eas submit
```

## Creating Internal Builds **[For Repo Maintainer]**

A build created for internal use within the development team and can be downloaded on a developer's physical mobile device.

Register a developer's Apple Device by running the command and provide them with the given QRCode. The QRCode must be scanned by developer and follow the instructions

```
$ npx expo run:android
or
$ npx expo run:ios
$eas device:create
```

These can also be run using `yarn build-android` or `yarn build-ios`.
Create an Internal build by running the following script and provide the link to developer. You will be asked to select devices, select all device. It is important to note that an internal build must be created when a new developer (after eas device:create) and when a new dependencies/package is added.

To build using EAS, carefully follow the documentation stated [here][EAS-url]. This will build and host the application on the cloud. EAS building will only be required when deploying the app onto the Apple App Store or the Google Play Store.
```
yarn dev-client-sim
```

## Test - TODO: Need more details

## Usage
```
$ yarn test
```

## Contact
## Support

If you have any questions, please contact

Jason Le, JasonIsAzn@tamu.edu
Jason Le, vjasonle@gmail.com

Eliseo Garza, eliseogarza@tamu.edu

<p align="right">(<a href="#readme-top">back to top</a>)</p>

[contributors-shield]: https://img.shields.io/github/contributors/github_username/repo_name.svg?style=for-the-badge
[contributors-url]: https://github.com/TAMUSHPE/MobileApp/graphs/contributors
[stars-shield]: https://img.shields.io/github/stars/github_username/repo_name.svg?style=for-the-badge
[stars-url]: https://github.com/TAMUSHPE/MobileApp/stargazers
[issues-shield]: https://img.shields.io/github/issues/github_username/repo_name.svg?style=for-the-badge
[issues-url]: https://github.com/TAMUSHPE/MobileApp/issues
[linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
[linkedin-url]: https://linkedin.com/in/linkedin_username
[product-screenshot]: images/screenshot.png
[Next.js]: https://img.shields.io/badge/next.js-000000?style=for-the-badge&logo=nextdotjs&logoColor=white
[Next-url]: https://nextjs.org/
[React.js-badge]: https://img.shields.io/badge/React-20232A?style=for-the-badge&logo=react&logoColor=61DAFB
[React-url]: https://reactjs.org/
[Vue.js]: https://img.shields.io/badge/Vue.js-35495E?style=for-the-badge&logo=vuedotjs&logoColor=4FC08D
[Vue-url]: https://vuejs.org/
[Angular.io]: https://img.shields.io/badge/Angular-DD0031?style=for-the-badge&logo=angular&logoColor=white
[Angular-url]: https://angular.io/
[Svelte.dev]: https://img.shields.io/badge/Svelte-4A4A55?style=for-the-badge&logo=svelte&logoColor=FF3E00
[Svelte-url]: https://svelte.dev/
[Laravel.com]: https://img.shields.io/badge/Laravel-FF2D20?style=for-the-badge&logo=laravel&logoColor=white
[Laravel-url]: https://laravel.com
[Bootstrap.com]: https://img.shields.io/badge/Bootstrap-563D7C?style=for-the-badge&logo=bootstrap&logoColor=white
[Bootstrap-url]: https://getbootstrap.com
[JQuery.com]: https://img.shields.io/badge/jQuery-0769AD?style=for-the-badge&logo=jquery&logoColor=white
[JQuery-url]: https://jquery.com
[Node-url]: https://nodejs.org/en/download
[Yarn-url]: https://classic.yarnpkg.com/lang/en/docs/install/#windows-stable
[ngrok-url]: https://ngrok.com/download
Expand All @@ -152,3 +151,7 @@ Eliseo Garza, eliseogarza@tamu.edu
[EAS-url]: https://docs.expo.dev/build/introduction/
[Firebase-url]: https://firebase.google.com/
[React-Native-url]: https://reactnative.dev/
[Git-url]: https://git-scm.com/downloads
[Tailwind-url]: https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss
[Expo-Build-url]: https://expo.dev/accounts/tamu-shpe/projects/TAMU-SHPE/development-builds
[XCode-url]: https://apps.apple.com/us/app/xcode/id497799835
12 changes: 8 additions & 4 deletions app.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
[
"expo-document-picker",
{
"iCloudContainerEnvironment": "Access to files in iCloud"
"iCloudContainerEnvironment": "Access access to files in iCloud"
}
],
[
Expand All @@ -32,6 +32,12 @@
"useFrameworks": "static"
}
}
],
[
"expo-barcode-scanner",
{
"cameraPermission": "Allow tamu shpe app to access camera."
}
]
],
"assetBundlePatterns": [
Expand All @@ -42,15 +48,13 @@
},
"scheme": "tamu-shpe",
"android": {
"googleServicesFile": "./google-services.json",
"package": "com.tamu.shpe",
"permissions": [
"android.permission.RECORD_AUDIO"
],
"versionCode": 1
},
"ios": {
"googleServicesFile": "./GoogleService-Info.plist",
"bundleIdentifier": "com.tamu.shpe",
"buildNumber": "1"
},
Expand All @@ -66,4 +70,4 @@
"url": "https://u.expo.dev/5b75342a-5739-4b5b-838f-89ff1fe3979d"
}
}
}
}
Binary file added assets/Instagram-Logo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 9 additions & 0 deletions assets/SHPE_black.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions assets/acct_icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions assets/aero_icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions assets/arrow-down-solid.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
15 changes: 15 additions & 0 deletions assets/astr_icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions assets/bmen_icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 52d9840

Please sign in to comment.