Giter Site home page Giter Site logo

hack-tx-2022's Introduction

CheckedIn Developer Guide

What is CheckedIn?

Checkedin is a platform for organizers that enables a more decentralized check in process. Clients who are attending the event can check in once they are within a proximity of the event on a web application. As well, organizations can have a collection of events that clients can subscribe to and view.

Image Demonstrations

unknown1 1unknown 2unknown 3unknown unknown

Overall Program Structure

CheckedIn is largely separated into the backend and frontend in its development. Below is an overall breakdown of the program structure

/frontend

  • checkin.html: check in html webpage code
  • eventCreation.html: creating event webpage for organizers
  • eventInfo.html: viewing event webpage for clients
  • index.html: unused code
  • joinEvent.html: viewing specific event webpage for organizations
  • login.html: login page webpage
  • organizationPage.html: homepage for organization
  • userPage.html: homepage for users

backend code (spread out in main)

  • auth.py : Authentication API calls
  • aws.py : API calls to AWS specifically and dynamoDB
  • events.py : API calls for specifically events
  • main.py: main API calls
  • organization.py: Main organization API calls

Frontend

Overall Website Structure

image

Setup for each html

We organized webpages inside by head, body, and script codes. Scripts are written in JavaScript that handles most of the API calls.

Backend

below is a overall implemetation of the backend system with the API calls and database sets

API calls

Auth POST*Login() -> Sends a login request

POST_register() *-> Sends a register request_

Events GET events/<org> -> list org events

GET events/<id> -> returns event keyed by ID

GET events/<username> -> returns events user is signed up for

POST events -> calls create event

POST event/sub/<id> -> registering to an event

POST events/checkin/<id> -> check into an event

DELETE events/<id> -> Delete event

Organization GET organization/<orgName> -> returns info of <orgName>

User GET user/<id> -> gets user info


Database

Environment variables

AWS_ACCESS_KEY="[AWS KEY]"

AWS_SECRET_KEY="[AWS secret KEY]"

JWT_SALT='SALT'

JWT_SALT_TWO='SALT_TWO'

Overall Variables

User -Email/username (KEY)

-Password

-subbed_orgs <List>

-subbed_events <List>

Organization -email / organization_name

-password

-events -> [uids]

-subbed_users

Event -Location -> (latitude, longitude)

-time_start

-time_end

-description

-organization

-users_checked_in

-uid

-prompt (after check in)

-event_name

Noteworthy Things for Database

Cloud Deployment

Deployment of CheckedIn to a remote server has been tested through two main sources, ngrok and google cloud

Google Cloud

Deployment on Google Cloud can be done through a basic deployment model. The main thing is to load all the files and run remotely through the Google Cloud Shell. As well, when developing new applications, make sure to rename app.py to main.py and deploy flask using flask --app main run

Ngrok

Ngrok can be used to deploy the program to any pre-existing server. Install and set up ngrok by creating an account and downloading the binaries. Then, you can use ngrok to forward one of your ports to the internet. We chose to forward port our port 4000 backend to ngrok by typing in ngrok http 4000.

Known Issues

Below are some known issues that we currently have with the program

  • Not all map features are figured out
  • Geolocation works in theory but is not yet confirmed
  • Edge cases and and error has not been fleshed out yet due to time
  • Current implementation allows users to sign in multiple times
  • Authentication isn't fully fledged out between users and organizations

Future Implementation Ideas

For developers, here is some future implementation ideas we have:

  • Implement SSH functions with iPhone and Android so we can use push notifications
  • Have a more comprehensive event page with maybe better prompts
  • Using livestreaming of people coming in and location tracking to get distances
  • Pair with online purchases to automate event seating
  • Mobile app development

hack-tx-2022's People

Contributors

gkkoussa avatar causality-c avatar hasifshaikh avatar eaorkun avatar

Watchers

James Cloos avatar  avatar

hack-tx-2022's Issues

Figure out the frontend

-Views change depending on the organization or person

-HTML geolocation app

Minimum:
-Website that shows login and users and subscriptions
-Event organizer and participant

Note: This is something that can be done through a website

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.