Git Product home page Git Product logo

ferrous's Introduction

Ferrous

Ferrous is just a Hospitality manager!

Build Status

versioneye license Codacy Badge

Introduction

One of the biggest hurdles of managing large events which provide on-site accomodation is to properly distribute the available space with optimization to everyone. Ferrous aims to solve this problem by serving as a single platform to take control of everything from registering for accomodations to helping distribute them to guests.

Purpose

Ferrous was originally created for the Hospitality department of Mood Indigo, the student-organized cultural fest of Indian Institute of Technology, Bombay, and was deployed successfully during Mood Indigo 2018. The main purpose it serves is to easily provide accomodation to thousands of people with minimal delay.

Structure

The server written in ASP.NET Core works as a RESTful API, and is theorotically client independent, though it works closely with ferrous-client, which is an Angular 5 PWA. The server provides hyperlinks (HATEOAS) for almost everything and this is the recommended way of routing. Following are the main entities:

Contingent

A group of people who are supposed to arrive together. Each contingent has a unique Contingent Leader, with a Contingent Leader number (commonly CLNo), who is supposed to co-ordinate with the organizers.

Person

An entity attending the event. Has a unique Mood Indigo number (MINo).

Room

A unique room, which may be allocated to multiple people.

The structure and implementation is not designed for scaling, since the user base is highly limited (typically <20 simultaneous users), but for accuracy and realiability.

Features

  • Location maps for easy allocation.
  • Rooms may be allocated to multiple contingents partially, in case this is necessary.
  • Live maps for survey by organizers.
  • Permissions and elevation levels, for a heirarcy in organizers.
  • Chunked arrivals, where contingents may arrive in chunks of few people.
  • Export data to spreadsheet

Usage

Build the project using the latest (preview) dotnet sdk. It is recommended to use the client supplied, since development of the server takes place in close co-ordination with it. During development the client needs to be built and served separately, and traffic not relevant for the server is passed to localhost:4200, where the client should be served. For production, dotnet publish will automatically run the build script for ClientApp and the client will be bundled with the application, which can then be deployed directly, preferably behind an SSL reverse proxy.

Note: Make sure you run git submodule update --init --recursive so that all submodules are cloned.

Contributing

Pull requests and issues are welcome, as long as a few constraints are followed:

  • If you are breaking a feature used by the provided client, be sure to state this explicitly. Your pull request will be merged only when the client can be modified accordingly.
  • Follow the general style of the project. Badly written or undocumented code might be rejected.
  • If you are proposing a new model or modifications to an existing one, create an issue first explaining why it is useful.
  • Your code should not break CI builds (there can be exceptions).
  • Outdated, unsupported or closed-source libraries should not be used.
  • Be nice!

ferrous's People

Contributors

pulsejet avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

ferrous's Issues

Reconnect Websocket

Description

Websocket should reconnect on disconnection

Current Behavior

Does not reconnect

Expected Behavior

Should reconnect on disconnection or changing connection

More columns to Person table

Description

Propose more columns to Person table.

Current Behavior

No such columns

Expected Behavior

Columns for City, Mobile Number, E-Mail Id should be present

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.