Garage Gym Project Information
University Name: San Jose State Unversity
Project URL: Garage Gym
Course: Cloud Technologies
Professor: Sanjay Garje
Students:
Project Introduction
GymGarage is an online-platform that connects local gym owners to gym enthusiasts. Gym owners can list their home gyms (along with description and cost per use) and decline/accept requests. Gym enthusiasts can search for gyms, submit requests, and do payment all on this platform.
Sample Demo Screenshots
Login and Registration
Administrator Capabilities:
Upload Gym
Accept/Decline Requests
Receive Emails when a Reservation has been made
User Capabilities:
Search and Select a Gym
Pay for Gym
Cancel Request:
**Pre-requisites Set Up**
Here include bullet point list of resources one need to configure in their cloud account. (E.g. For AWS: S3 buckets, CloudFront etc):
* S3 bucket
* CloudFront
* EC2s: 2 ECs per region with load balancer in each region (us-west & us-east)
* Route 53
* DynamoDB - 5 Tables with Global Table Configuration
* Lambda/SNS (in development)
List of required software to download locally (E.g. Spring, JDK, Eclipse IDE etc. )
## Required Software To Run Locally
#### Software Requirements
* Ubuntu 18.04 EC2
* Git
* NodeJS
* Apache2
* PHP
* vim/nano
#### Local Configuration
1. Clone/fork the repository from github.
`$ git clone https://github.com/ramyakandasamy7/project2Cloud.git`
2. Install all necessary software
`$ sudo apt update; sudo apt install nodejs apache2 php`
3. Go into project2Cloud/ramyasAPIs and project2Cloud/raymondsAPIs and install the dependencies
```
$ cd project2Cloud/ramyasAPIs
$ npm install
$cd ../raymondsAPIs
$npm install
```
4. Point Apache2 /var/www/html directory to project2Cloud/jedsUI. Look at /etc/apache/apache.conf and add the following to the tag ``
```
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
Header always set Access-Control-Max-Age "1000"
Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token"
```
`$ sudo ln -s /home/ubuntu/project2Cloud/jedsUI /var/www/html`
Note: You may need to delete the /var/www/html directory first.
5. Restart Apache2. The root directory of Apache should point to jedsUI directory now which is where the homepage of the project resides. You may open a browser and check localhost.
`$ sudo service apache2 restart`
#### Another important NOTE: Because the UI uses each EC2's public IP to make API calls, the application will only fully work in an EC2 with public IP.
#### Yet another important NOTE: API keys and secret keys are not included in the code, so really, without them, you can only look at the front page of the project.