Helix.GG is a companion application for league of legends that allows users to search for other players and view statistics and reviews left by other players.
- javaScript
- Node
- React
- React-redux
- redux-saga
- Passport
- Express
- SQL
- CSS3
- HTML5
- Nivo (D3)
Before you get started, make sure you have the following software installed on your computer:
Create a new database called helix
and create the following tables:
CREATE TABLE "User" (
"id" SERIAL PRIMARY KEY,
"username" VARCHAR (255) UNIQUE NOT NULL,
"password" VARCHAR (255) NOT NULL,
"summoner_Name" VARCHAR(255),
"profile_icon" VARCHAR(255),
"email_address" VARCHAR(255)
);
CREATE TABLE "Review" (
"id" SERIAL PRIMARY KEY,
"reviewed_summonerName" VARCHAR(255) NOT NULL,
"reviewing_user_id" INT REFERENCES "User" NOT NULL,
"rating" INT NOT NULL,
"content" VARCHAR(160) -- Could be null if user just wants to leave a rating
);
CREATE TABLE "Favorite" (
"id" SERIAL PRIMARY KEY,
"summoner_Name" VARCHAR(255) NOT NULL,
"user_id" INT REFERENCES "User",
"summoner_profile_icon" VARCHAR(255)
);
If you would like to name your database something else, you will need to change helix
to the name of your new database name in server/modules/pool.js
-
Run
npm install
-
Create a
.env
file at the root of the project and paste this line into the file:SERVER_SESSION_SECRET=superDuperSecret
While you're in your new
.env
file, take the time to replacesuperDuperSecret
with some long random string like25POUbVtx6RKVNWszd9ERB9Bb6
to keep your application secure. Here's a site that can help you: https://passwordsgenerator.net/. If you don't do this step, create a secret with less than eight characters, or leave it assuperDuperSecret
, you will get a warning. -
Signup for a riot games api key and paste this line into your
.env
fileAPI_KEY= <your api key>
-
Start postgres if not running already by using
brew services start postgresql
-
Run
npm run server
-
Run
npm run client
-
Navigate to
localhost:3000
Link to the scoping document for this project can be found here.
- Home Page UI
- Routes
- Search bar
- Summoner Profile
- Summoner profile reviews
- Summoner profile create review
- Favorite summoner
- Summoner Profile analytics
- Summoner Profile recent champs analytics
- Summoner Profile match history
- User login and authorization
- User registration
- Summoner / User reviews
- Profile Page
- Display/Edit/Delete user reviews
- Display/Delete favorites
- UI Transitions
Here are some features I plan on implementing in the near future
- Additional detail to profile summary
- Table row on mount transitions
- Page lifecycle animations
- Refractor searching to allow 20+ searchs in parallel
- Refractor searching to be made on click of summoner name
- Search bar visible on all pages
- Display chart of summoner's ratings
- Migrate to mobile
- Account verification (?)
- Email verification
- Success/error notifications & snackbars &
- Comprehensive overhaul of analytics
- Champion Wallpaper
- Update animation / color scheme / layout to be more user friendly
- Josh Byron
Before pushing to Heroku, run npm run build
in terminal. This will create a build folder that contains the code Heroku will be pointed at. You can test this build by typing npm start
. Keep in mind that npm start
will let you preview the production build but will not auto update.
- Start postgres if not running already by using
brew services start postgresql
- Run
npm start
- Navigate to
localhost:5000
- Create a new Heroku project
- Link the Heroku project to the project GitHub Repo
- Create an Heroku Postgres database
- Connect to the Heroku Postgres database from Postico
- Create the necessary tables
- Add an environment variable for
SERVER_SESSION_SECRET
with a nice random string for security - In the deploy section, select manual deploy