Giter Site home page Giter Site logo

captnwalker / general-ledger Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 5.52 MB

*IN PRODUCTION* - General Ledger version of Expense-Manager App

Home Page: https://general-ledger.herokuapp.com/

License: MIT License

HTML 0.85% JavaScript 87.89% CSS 11.25%
react redux firebase-database firebase-auth momentjs node express

general-ledger's Introduction

IN PRODUCTION - General-Ledger ๐Ÿ’ฐ ๐Ÿ“ˆ

Purpose of this Project

"General-Ledger" allows an individual user or company to track personal or business expenses. Expense-Manager is built in React with SCSS styling which permits each individual element to occupy separate files making the product easily scalable and customizable by swapping components in and out as required for a wide variety of end users. The app is fully responsive for a seamless mobile user experience. This version of the Expense-Manager has been customized for use in food service and restaurant environments.

Table of Contents

How to Use

Login with your Google account. Click Add Expense to Enter expenses. Review, Sort, Filter, and Tally expense records in the Dashboard. Click any record in the Dashboard to read Notes, Modify and/or Delete it on the Edit's Page.

Deployment

The general-ledger has been deployed to a Heroku Dyno and can be used by following the link. (Note: Resting Dyno's can often take 10 to 15 seconds to spin up on initial load and are not indicative of a sites true load speed.)

Screenshots of this Project

general-ledger

general-ledger

general-ledger

Technologies Utilized

Core Styling/Authentication Dependencies Dev Environment/Testing
React SCSS AirBnB/React-Dates Babelrc Compiler
Express Google Fonts Moment.js WebPack
NodeJS normalize.css Numeral.js Jest Testing Framework
Redux Google Login Yarn Redux-Devtools-Extension
Firebase DB Firebase AuthO UUID extract-text-webpack-plugin
JSX Validator Redux-Thunk Babel Poly-Fill
JavaScript CSS3 RegEx LiveServer
HTML5 dotenv CSS Loader History

Server-side Data Input Validation (Firebase)

{
  "rules": {
    ".read": false,
    ".write": false,
    "users": {
      "$user_id": {
        ".read": "$user_id === auth.uid",
        ".write": "$user_id === auth.uid",
        "expenses": {
          "$expense_id": {
            ".validate": "newData.hasChildren(['description', 'note', 'createdAt', 'amount'])",
              "description": {
                ".validate": "newData.isString() && newData.val().length > 0"
              },
              "note": {
                ".validate": "newData.isString()"
              },
              "createdAt": {
                ".validate": "newData.isNumber()"
              },
              "amount": {
                ".validate": "newData.isNumber()"
              },
              "$other": {
            	".validate": false
          	}
          }
        },
          "$other": {
            ".validate": false
        }
      }
    }
  }
}

Steps to Deploy Locally

  1. Clone down this repo
  2. Restore dependencies by running yarn install in the root of your local repo
  3. Restore production files by running yarn run build:prod
  4. Start local server by running yarn run dev-server
  5. You are now in development mode on localhost:8080
  6. Deploy to host of your choice: ex.; Heroku
  7. Connect to a database and authentication of your choice: ex.; Firebase
  8. Create Firebase DB and authentication per Firebase documentation
  9. Add API keys to your local project
  10. Set Firebase API keys in Heroku from command line: heroku config:set <list all 6 keys separated by a space>
  11. You now should be able to login on your deployed site

Note: If you encounter a FIREBASE FATAL ERROR when you attempt to launch your app, please refer to the repo Firebase-Fatal-Error-Heroku-Deploy-Solved for a possible solution.


Companion Versions of the App

This app was built in React to be easily scalable. Other versions of this app can be found on the following repo's.

License - MIT

general-ledger's People

Contributors

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