Skip to content

sbassong/g-verse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Description

Gverse is a fully functional, intuitive, engaging full-stack application through which game enthusiasts can browse games, manage their personal account, and a library of their favorite games. The application leverages the PERN stack, utilizes the Sequelize ORM and JSON Web Tokens for Authentication and Authorization.

Tech Stack


Local Environment Requirements

Node, npm, and PostgreSQL are necessary to run this application. If needed, please follow the installation guidelines in the Env-requirements section section.

Getting Started

Once the requirements are met, we're ready to run the application. Follow the steps below to set up and launch the application server.

Copy this repo's HTTPS URL and clone it onto your local machine's terminal:

git clone https://github.com/sbassong/g-verse.git

From here you will need to have 2 terminals open to run both the frontend and backend

A. Client / React app / Frontend

  1. Change directory into the newly cloned folder's client folder then install dependencies
    cd g-verse/client
    npm install
  2. Run the app on port 3000
    npm start

B. Server + Database / Express app / Backend

  1. Change directory into the newly cloned folder then install dependencies

    cd g-verse
    npm install
  2. In the g-verse root folder, add a .env file containing both the following variables

    SALT_ROUNDS=<12 or 16>
    APP_SECRET="<WhateverCombinationOfCharactersYouWant.Add889aAndSpecialChars&&##!Throughout>"
  3. Use the sequelize-cli to create the g-verse_development database on postgres (databases have a different name based on environment. Can be found in config/config.json).

    PostgreSQL needs to be running from here on out

    sequelize db:create
  4. Migrate the database with app's models

    sequelize db:migrate
  5. Recommended: Run the following to seed the database with some initial games. (already set up in the seeders/20210924141036-games file)

    Feel free to modify the game objects or add your own, following the Game model guidelines

    sequelize db:seed:all
  6. Finally, run the server on port 3001

    npm run dev 

Future Updates

  • Integrate a UI Library
  • Polish User authentication and authorization
  • Add UX features, alerts, tooltips...
  • Full update to MUI (in progress)
  • Filter by Sidebar

Credits

Contributors

Env Requirements

Node, npm, and postgreSQL are necessary to run this application. please follow the installation guidelines below:

Node and npm

  • Recommended: Go to the Node Version Manager (NVM) github and follow the instructions to install both both Node and npm

  • Alternatively: Go to Node.js and use the installer appropriate for your system to install node and npm

    Verify that both node and npm have been installed by running the following in your CLI

      node -v
      npm -v
    

PostgreSQL

  • Head to the official PostgreSQL documentation, choose your operating system family and follow your preferred installation route

  • My preferred installation method for Linux/MacOS:

    1. install homebrew by running this command in your termninal

       /bin/bash -c "$(curl -fsSL https://raw githubusercontent.com/Homebrew/install/HEAD/install.sh)"
      
    2. follow the following steps one by one

      use brew to install postgres

       brew install postgres
      

      confirm installation with:

       postgres --version
      

      To start Postgres and keep it running on your machine

       brew services start postgresql
      

      To test the above, create a database with your local profile/account name

       createdb <account name>
      

      Confirm you can enter the postgres shell with the following command:

       psql
      

      Exit shell with:

About

Full stack application featuring React, PostgresSQL, Node/Express.js, MUI, and JSON Web Token Auth

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published