Giter Site home page Giter Site logo

dnerever / digitaldash Goto Github PK

View Code? Open in Web Editor NEW
0.0 0.0 0.0 25.79 MB

This application was built with NodeJS, and features a simplistic design built around a random game generator. The aim of the application is to provide a quick and easy way for gamers to discover new games and get back to playing as soon as possible. It was built with Node.js, postgreSQL and Docker.

EJS 46.90% JavaScript 48.62% CSS 4.48%
api game search containerization docker docker-compose javascript nodejs postgresql

digitaldash's Introduction

GroupProject-Team2

Application Description:

This gaming application aims to simplify the process of finding a new game for gamers or people looking to get into gaming. It features a modern design and a random game generator that allows users to quickly discover new games. The application has four main pages, including a login page, a register page, a recommendation page, and a user page where users can save and like game suggestions. Users log in to save or like recommendations, and passwords are encrypted. The recommendation page displays one game at a time, and users can continuously view new games. This application is designed for ease of use and aims to help users spend more time gaming and less time deciding what to play.

Contributors

  • Joseph Pleasant, Keith Bates, Kimberly Marthias, Emma Lowery, Harrison Pena, Kevin McMahon

Technology Stack

  • This website uses HTML, CSS, JavaScript, SQL, nodeJS and EJS in terms of programming langauges. Additonally a PostgreSQL database and Docker Compose are used for the website's backend.

Prerequisites to run the application

  • In order to run the application, you must have Docker Compose installed.

Steps to deploy Gameroll on your CU private server

  1. Change the docker-compose.yaml file web port from ‘3000:3000’ to ‘:3000’ and push your change to the repo.
  2. While connected to the campus internet, use ssh through your terminal of choice to connect to your private server. The command is:
ssh <YOUR_IDENTIKEY>@csci3308.int.colorado.edu
  1. Once the connection is established navigate to the directory you would like to have the deployment in.
  2. Install rootless-docker with the command:
dockerd-rootless-setuptool.sh install
  1. Now clone the DigitalDash repo with the command:
git clone [email protected]:dnerever/DigitalDash.git
  1. Change the permissions for your repo with two commands:
chmod 777 .
chmod 766 package-lock.json
  1. Add a .env within the gameroll/ directory.
  2. Create a Twitch API key which can be done by following IGDB’s guide (They explain it better than I could :)). Also here is IGDB’s guide that you must follow to get your bearer access token.
  3. Navigate to the gameroll/ directory:
cd gameroll/
  1. Now create a .env file:
touch .env
  1. Now that we have both our Client ID and Bearer Token we can enter those in our .env file using vim with the command:
vim .env

Vim file example:

# database credentials
POSTGRES_USER="postgres"
POSTGRES_PASSWORD="pwd"
POSTGRES_DB="gameroll_db"

SESSION_SECRET="super duper secret! Gameroll"
client_id="<YOUR_CLIENT_ID>"
authorization="Bearer <ACCESS_TOKEN>"

Now save your .env and close the vim editor. 11. Ensure you’re in gameroll/ and run:

docker-compose up -d
  1. Find the exposed ports with:
docker-compose ps
  1. Access the web server through a browser (Example: http://csci3308.int.colorado.edu:3000):
http://csci3308.int.colorado.edu:<YOUR_EXPOSED_DOCKER_WEB_PORT>

Steps to deploy locally:

  1. Make sure you have docker compose installed.
  2. In a terminal of your choice navigate to your desired location for the repo.
  3. Once there clone the repo:
git clone [email protected]:dnerever/DigitalDash.git
  1. Navigate to the gameroll/ directory:
cd gameroll/
  1. Add a .env within the gameroll/ directory.
    1. Create a Twitch API key which can be done by following IGDB’s guide (They explain it better than I could :)).
    2. Also here is IGDB’s guide that you must follow to get your bearer access token.
    3. In the gameroll/ directory create a .env file:
    touch .env
    
    1. Enter both the Client ID and Bearer Token in our .env file using vim:
    vim .env
    
     a.Example .env:
     ```
     Vim file example:
     # database credentials
     POSTGRES_USER="postgres"
     POSTGRES_PASSWORD="pwd"
     POSTGRES_DB="gameroll_db"
    
     SESSION_SECRET="super duper secret! Gameroll"
     client_id="<YOUR_CLIENT_ID>"
     authorization="Bearer <ACCESS_TOKEN>"
     ```
    
    1. Save the file and exit vim
  2. From the gameroll/ shutdown all other docker-compose containers:
docker-compose down -volumes
  1. Start docker-compose:
docker-compose up -d
  1. Wait until the API connection is secured (~5 seconds)
  2. Access the web app from a browser of your choice: localhost:3000

digitaldash's People

Contributors

dnerever avatar kevinjmcmahon avatar emlo9129 avatar josephpcs avatar schoolhob avatar kima3129 avatar

digitaldash's Issues

User Story: New Game

User can click "New Game" to generate a new game on the same page with or without being logged in

Epic 1: User is logged in to the website

When the user is logged in they will have more functionality within our application. If the user is logged in they will be able to like games, save games and then have their own profile. The user will be able to view saved games, and also be able to see the top (most liked) games on the entire platform within the profile.

Week 2 Checklist #2 -Profile

This week we look to add a profile page for the logged in users. We also look to incorporate the api so users can save games to their profile.

User story: "user profile"

After making an account, the user will be able to view their own profile. Within the profile, the saved games will be shown, along with the most liked games by all users.

User Story: Logged in "save" feature

As a user I would like to be able to save games as I am clicking through the randomizer so I can go back and find them all in an organized list whenever I need a new game.

Password hashing

Implement password hashing for user passwords during registration.

User registers

User registers after filtering preferences to save recommendations.

User filters games recommendations

A user viewing the site who is not logged in will have the option to filter game recommendations and regenerate the recommendations based on a few different categories such as: genre, Multiplayer/Single Player, difficulty...

Week 4 TODO

  • Complete the project report (due 12/2)
  • Complete & practice presentation at Tuesday meeting (due 11/30)
  • Resolve merge errors within code
  • Complete the 'save game' feature

Week 2 Checklist #1 - Database

  1. All tables will be created for the database.
  2. Specific API will be chosen
  3. Chosen API will be functional and data will be pulled from it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.