GithubHelp home page GithubHelp logo

iqrivas / guild-auction-manager Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 182 KB

This application helps to manage and organize the ESO Guild Auction Events. Created with Ruby on Rails.

Home Page: https://guild-auction-manager.herokuapp.com/

Ruby 71.13% JavaScript 1.87% CSS 0.60% HTML 26.40%
auctionapp devise pundit ruby-on-rails

guild-auction-manager's Introduction

Guild Auction Manager

Introduction

In the game Elder Scrolls Online players use guilds to join efforts to crowdfund certain in-game benefits, such as hiring a Guild Trader every week that will allow them to sell their adventure's loot to other players, but this does not come cheap.

Auctions are one way for the Guilds to gather funds from its members by auctioning certain special items that are donated by other guild members.

Guild Auction Events are often held in-game, where players use features such as voice-chat and text-chat to interact during the event. This comes with limitations such as maximum players allowed in voice-chat or long standing known issues. Also, not all players may be available at the time of the Auction considering different time zones or having a busy schedule.

Objectives

  • Provide an alternative auction process where members have a greater range of time to participate in Guild Auction Events

  • Provide a better management and collaboration tool for auction organizers

  • Increase transparency of total amounts collected and member participation

Description

The application allows to organize and manage Guild Auctions allowing Admins to collaborate on Auction Drafts and Members to have a more dynamic experience during Open Auctions placing bids and seeing updates in realtime

Here are some of the features:

  • Members can sign up and log in to the application using email and password. They must be logged in to access.
  • Members can view Auctions (Completed and Scheduled) and view the Auction Items each have along with any Bid history messages
  • Members & Admins can place Bids on Auctions
    • TODO: Add validation - Bids can only be placed on Auction Items when the Auction status is In Progress
  • Admins can create new Auctions and add Auction Items to Auctions
    • TODO: Add validation - Auction Items cannot be added or modified on Cancelled or Completed Auctions.
  • Admins can create and edit Items and Categories so they can be available when creating or updating Auction Items
  • When users are viewing the Auction Item Details page, any new Bids added for that item will be added to their page in realtime. ActionCable.
  • TODO: Add CSS Framework
  • TODO: Add Unit Testing
  • TODO: Add Job infrastructure (Active Job)

Entity Relationships Diagram

erd-guild

Challenges faced during the project

  • Getting the websockets to work was a bit confusing at first since ActionCable was not working properly until I setup Redis. Once this was running, setting up the channels and messages was not complicated.

  • When transitioning the project from sqlite3 to Postgresql, there were some configuration issues on my machine that took a while to resolve. This was a step required to make a deployment to Heroku since sqlite3 is not supported. I’ll take some more time to follow-up my learning on other deployment options.

Run Locally

The project uses the following:

  • Ruby version 3.1.2
  • Redis for ActionCable
  • Devise for Authentication
  • Pundit for Authorization
  • main branch uses sqlite3 database

To run the project, consider the following:

# You must have Ruby installed

# 1. Install a Ruby version manager

# Install rbenv from github repo
# https://github.com/rbenv/rbenv#basic-github-checkout
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash
# Restart console
eval "$(rbenv init - bash)" >> ~/.bashrc
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-doctor | bash
# Check your versions
rbenv -v
ruby -v
# Install Ruby version & set global or local version
rbenv install 3.1.2
rbenv global 3.1.2

# Clone the repository, access repository and install dependencies
https://github.com/iqrivas/guild-auction-manager.git
cd guild-auction-manager
bundle install
rbenv rehash

# Run migrations
rails db:migrate
# Add some sample data
rails db:seed

#To be able to use the rails-erd gem, you will need Graphviz
sudo apt-get install graphviz

You will need some servers to get the app running:

# If you don't have Redis you can install
sudo apt install redis
# Start the Redis Server
$ redis-server

# Start a Rails Server
$ rails server

Open localhost:3000 in your browser

You can Sign up to create a User with the Member Role or you can sign in as Admin to review full features

Admin Credentials:

Application Interface

**Admin Role - After Login View - Auctions List **

auctions

**Admin Role - Auctions Details View **

auction-details

**Admin Role - Auctions Item Details View **

auctionitem

** New Bids update in realtime when viewing Auction Item Details **

newbodrealtime

guild-auction-manager's People

Contributors

iqrivas avatar

Stargazers

 avatar

Watchers

 avatar

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.