Code Monkey home page Code Monkey logo

plumber-hub's Introduction

Plumber-Hub

App that manages plumber duties

Specifications

  • Provides cost estimates for a trip
  • Keeps track of customers' name, adress, phone number, email
  • Has a history of trips with the services offered in each
  • Has a history of tools used in each trip (optional)
  • Each trip to a customer has zero or more invoices. Invoices can be emailed to customers (optional)
  • Two types of users: plumber and customer. Customer can pay the invoices (optional)
  • Schedule future trips in calendar (optional)

plumber-hub's People

Contributors

razvannesiu avatar

Watchers

 avatar

plumber-hub's Issues

Adding new trip sets the date to current date

Description
Addin new trip on the date of 6th of December will add into the database a new trip on 6th December, regardless of what the user picks.

Steps to reproduce

  1. Go to Trips tab.
  2. Click Add new trip button.
  3. Enter user details and select a date different than today's date.
  4. Click Save button.
  5. Notice that the date shown in the new entry is the date of today.

Create Service List

Description
As a Plumber Hub user, I would like to have a menu option where I can add a new service (and store its title, description, list of tools, image and price) one by one so as to create a list view populated from firebase database.

Spec

  • add edit texts to get input for title, description, list of tools, and price
  • add a save button to persist data into database
  • add a clear button to empty the above-mentioned edit texts
  • add a button that allows the user to select an image, which will be persisted to firebase cloud storage
  • add a recycler list view that gets populated from the database entries

Create Clear button on Customers tab

Description
As a Plumber Hub user, when navigating to Customers tab, I would like to be able to create a button that clears the input taken from the edit texts.

Spec

  • add a clear button that empties the content of the edit texts for name, email, phone, address

Create dialogs for adding new data

Description
As a Plumber Hub user, I would like to have a modal / dialog popping up whenever I want to add new data (ie: a new service, trip or customer) so as to be able to see more clearly the list of data.

Spec

  • add a dialog for each of the above-mentioned data types

Design database

Description
As a developer of Plumber Hub, I would like to have a high-level database design by creating an ERD diagram so as to be able to have an overall perspective on what are the main entities in the universe of discourse.

Spec

  • even though the database will be created using Firebase, which is NOSQL, the ERD (which is used in relational DB design) will be used just as an overview of the entities

Create Start Menu

Description
As a user of Plumber Hub, I'd like to be able to browse a start menu that contains a list of menu options:

  1. Services
  2. Customers
  3. Trips
  4. Tools

This will allow me to have access to the main points of interest of this app.

Spec

  • add a title for the main screen
  • add buttons that allow the user to navigate to each tab (ie: user can go to Services, Customers, Trips, Tools )

Create Customers List

Description
As a Plumber Hub user, I would like to have a menu option where I can add a new customer (and store its name, address, phone and email) one by one so as to create a list view populated from firebase database.

Spec

  • add an edit texts to get input for name, email, address, phone
  • add a save button to persist data into database
  • add a list view that gets populated from the database entries

Long pressing on trip or customer doesn't delete entry

Description
Long pressing on trip or customer doesn't delete entry in list view.

Steps to reproduce

  1. Go to Customers or Trips tab.
  2. Long click on an entry in the list view.
  3. Notice that the entry still remains in the list view.

Add styling for non-menu buttons

Description
As a Plumber Hub user, when browsing the app, I'd like to see a nice styling given to each button, so as to have a better user experience.

Spec

  • create a new style in res/styles and apply it to all buttons that are not part of the main menu

Create Trips List

Description
As a Plumber Hub user, I would like to have a menu option where I can add a new trip (and store its customer name, date, services offered, total cost) one by one so as to create a list view populated from firebase database.

Spec

  • add edit texts to get input for customer name, services offered, total cost
  • add a save button to persist data into database
  • add a clear button to empty the above-mentioned edit texts
  • add a date picker for the date in which the trip was made
  • add a list view that gets populated from the database entries (order the list by the date descending)

Add context menus instead of buttons

Description
As a Plumber Hub user, I would like to be able to long press an item in the list view and get a menu with different options so that I can easily manipulate each list item.

Spec

  • add context menus to Customers, Trips, and Tools tabs
  • default operations are edit and delete
  • non-default operations are already defined in the buttons attached to each widget (eg: for Trips, a non-default option would be "Send Invoice")

Apply animation on button click

Description
As a user of Plumber Hub, I would like to have some animation displayed when I click a button, so that I can have an idea of whether the button was successfully clicked or not.

Spec

  • add a simple animation to all buttons (eg: it can be a simple fade out animation)
  • clear buttons can do a rotate 360 degrees animation (optional)

Edit service on item click

Description
As a Plumber Hub user, I'd like to be able to edit a service when clicking on a list view item so as to be able to modify the data already inserted in the list.

Spec

  • add a new dialog to edit current service
  • open dialog on item click

Clicking on trips list shows item on reverted position

Description
Clicking on trips list shows item on reverted position.

Steps to reproduce

  1. Click on Trips tab.
  2. Click on one item from the list (eg: the first out 5 items).
  3. Notice that the info shown in the menu is for the 5th item in the list.

Create Tools List

Description
As a Plumber Hub user, I would like to have a menu option where I can add a new tool one by one so as to create a list view populated from firebase database.

Spec

  • add an edit text to get tool input
  • add a save button to persist data into database
  • add a list view that gets populated from the database entries

Take pictures and send them as PDF invoice

Description
As a user of Plumber-Hub, I'd like to be able to take pictures and send them via email to my customers as a pdf document. This will allow me to quickly send the invoice to a customer.

Spec

  • add a button to take a picture and add it to a list
  • add a button that clears the above-mentioned list
  • add a button that converts the images into a pdf and send it via email to a selected customer

Create user auth with data private to each user

Description
As a Plumber Hub user, I would like to have my data private and not shared with all the other users of this app, so as I will be able to keep my data private and secure.

Spec

  • change realtime database and storage references so as to have one path / user
  • change realtime database and storage auth rules

Add images to menu buttons & context menus

Description
As a Plumber Hub user, I would like to have menu buttons & context menus with images so as to be able to have a visual representation near the text.

Spec

  • add images to every single button in the main menu
  • add images to every context menu

Alternate animation on Services

Description
As a user of Plumber Hub, whenever I delete one service, I'd like to be able to see the card translating to the left and alternatively to the right as this would provide me with a better user experience.

Spec

  • add another animation that slides the view to the left
  • keep track of the next slide with an int that will be checked if it's odd or even

Add more options for customer data handling

Description
As a Plumber-Hub user, once in the Customers tab, I would like to be able to save a contact in my phone, give a call, send text or email so as to be able to manipulate customer data directly from the app.

Spec

  • add 4 buttons, one for each option
  • these buttons will be added for each customer is the list view
  • when user want to call, a call request is initiated in Phone app
  • when user wants to send text to a customer, a default text is composed in the Messages app
  • when user wants to send email to a customer, a request to send email is created, the user can pick the email client (eg: Gmail), then a default email is composed
  • when the user wants to save the customer's contact info, a request is made through Contacts app
  • in all of the 4 cases, after the respective button is clicked, the user has to do one more step in order to complete the action

Add authentication on database

Description
As a user of Plumber Hub, I would like to use some form of authentication, so that my information is secured.

Spec

  • add authentication with Google and with Email & Password
  • add Log In button that sends user to login screen
  • add Log Out button that signs the user out and exits the app temporarily

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.