Giter Site home page Giter Site logo

ramyac6 / work-order-tracker Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 3.4 MB

A work order tracking app built with React Native that queries a FireStore database and finds the next available qualified worker and sends them a text message via Twilio API.

JavaScript 51.46% Starlark 4.49% Java 21.84% Ruby 12.06% Objective-C 10.14%

work-order-tracker's Introduction

Inspiration

Having submitted many work orders for my terrible dorm room, I've been quite interested in how work orders are processed, specifically on the management side. How is it that a worker can show up the next day with exactly the right tools for the job? For this hackathon, I decided to create a mock version of a work order manager with a customer side user interface.

What it does

Workder allows customers to fill out work orders and track them in real time. They fill out a form that then gets sent to FireStore where an optimized query takes place to determine the appropriate worker to send for the job. Then the worker is notified of the work order via SMS and the customer sees this information in real-time.

How I built it

Workder is built with a React Native framework with several other APIs. Firebase was used for user authentication (and a failed attempt at hosting) FireStore was used as a realtime database for data management Stores Data and User Information. GitHub was used for file management. Netlify was attempted to be used for hosting. Radar.io was used to target workers who were closest to the job.

Challenges I ran into

React Native is one of those tools where a lot of APIs don't really have support so everything is community made and with that comes it's own challenges. For example, I was using a dropdown component that was 4 years out of date and it had a bug where the entire app would not connect because some module was missing, but there wasn't any documentation on it. After hunting around, there was a stack overflow post saying to change the import statement to say v2 and everything fixed itself. That entire issue took an unhappy 3 hours to track down. Another fun problem is that React Native is constantly changing and features that I may have used a year ago are now deprecated and held up by community remakes. Navigation between screens was something that I had to relearn from scratch as the update from v4 to v5 completely rewrote how navigation was done. Deploying things that are still in beta is hard. React Native offers support for Web, but that doesn't mean there's good documentation on how to deploy it. After several failed attempts at Firebase hosting, I went with Netlify which is hopefully loaded and working by the time you see this.

Accomplishments that I'm proud of

FireStore works! I've used FireStore before, but only to query the user's name so that it could be displayed. I learned how to query a database and how to return values from it to display in my app. Coming from no database background, this was pretty fun.

What I learned

The values and perils of community built libraries.

What's next for Workder

  • Better integration with Radar.io
    • Real-time tracking of workers as they arrive
  • Worker user interface so that they aren't reliant on text messages alone
  • Admin user interface to see all the datas
  • Ability to submit invoices through the app
  • Actual deployment!

work-order-tracker's People

Contributors

ramyac6 avatar

Stargazers

 avatar

Watchers

 avatar  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.