Giter VIP home page Giter VIP logo

mock-crud-app's People

Contributors

hwang26 avatar

Watchers

 avatar

mock-crud-app's Issues

Create Upload Transactions Page

Acceptance Criteria

Upload Transactions page should accept an upload of a Chase transactions CSV.

We can then parse this CSV to add transactions to the DB.

We can give an indicator of a successful parse.


Technical Details

We don't need to store this file anywhere. After the user selects the file to upload, we should do a check to make sure the file is indeed a Chase CSV.

  • File extension should be *.CSV

Create uninspected transactions component

ACs:

  • Create the Transactions schema/model (transaction.js) to facilitate storing and accessing transactions
  • Populate Transactions collection with some sample data
  • Display a list of links which bring you to the Edit Transactions page for that particular transaction.
    • For example, if I clicked into a transaction with ID: 325, I'd be redirected to the route /dashboard/edit/325
    • The links are transactions that have the "inspected" flag set to FALSE

Related Issues:
#17 Analysis: Data Model

Create Budget Component

ACs:

  • User info header
  • Add Category collection Schema
    • Write a script to populate the Collection with some sample Categories
  • Update the transaction population script with some of the added categories
  • The "Add Budget" button should trigger a modal to appear
  • The modal should allow us to specify a budget Name, the various categories, and the amount
    • We should be able to select from any available categories for our budget to encompass
    • We should be able to add categories within the "Add Budget" modal
      • Consider that this functionality will be used throughout our application, such as when we add transactions or edit transactions. We may want to componentize it somehow.
      • Add clientside and serverside validations

Analysis: Create a design/test doc

It would be useful to have a Design Doc template where we can put the details of a particular issue, such as what changes had to be made and how to test the ticket.

Analysis: Front-end Framework

Do research on how React might enhance the application.
Do research into using Bootstrap for Phase 1

Acceptance Criteria:

  • Have a front-end solution that has a low learning curve.

Tech Debt: Combine Readonly and Editable User Info components

ACs:

  • Combine readonly and edtiable User Info components in the Dashboard View
  • Add field labels
  • Break down the logic in dashboardEventListener into the given functions

Technical Details:

  • We can just use the same input fields but with a readonly attribute
  • Make sure to style the readonly input fields

Create Budget Component Part 2

  • The individual budget component
    • Display the name
    • Display progress bar
    • Field for "Total Remaining"
    • Red "X" appended, when clicked, will delete the budget
    • Ability to edit the budget

Look into bundlers and deployment tools

Look into tools for the future of the application

  • Bundlers

    • Parcel
    • Webpack
  • Deployment

    • Netlify
    • Vercel
    • Heroku
  • Automated Testing

    • Travis CI
    • Circle CI
    • Jenkins
  • Linters

    • eslint

Analysis: Chase Bank API and OFX

Research using the Chase Bank API and if necessary, utilizing Open Financial Exchange.

Acceptance Criteria:

By the end of our analysis, we want to successful retrieve a transaction from Chase bank.
Leave sample code and screenshots on this issue.

Additionally, we want to do some research on existing apps like Firefly III. Knowing how they store transactions might be useful to us in development. We can add these observations to #9 if they seem appropriate.

Technical Details

Reference: https://stackoverflow.com/questions/7269668/is-there-an-api-to-get-bank-transaction-and-bank-balance
http://www.ofxhome.com/index.php/home/directory
https://www.ofx.net/

Clean up validation logic for serverside

Acceptance Criteria:

Currently, validation is handled using library express-validator on an ad-hoc basis.

This ticket is to identify and add in/update validations across the application whenever we do a DB write in the backend.

Create a mockup "User Info" component

Acceptance Criteria:

  • User Progress Bar
    • Can be a mockup, we just want an example of a visual UI component
  • User Details
    • Simple user details display
  • Edit button
    • The edit button should allow us to edit the "User Details" fields (it should overwrite the entry in the DB)

Analysis: Bootstrap

Acceptance Criteria:

Look into core functionality of Bootstrap. At the end of this analysis, you should be able to understand how to make a simple site using the frontend library. Practice making a mockup of the Budget App's frontend dashboard using Bootstrap.

We'll be using this library on a basic level for our frontend in Phase 1.

Create Edit Budget Page

Acceptance Criteria:

This page is accessible through the associated Budget link.

On this page, we'll be able to edit each of the budget fields and either cancel or save the edits.

Analysis: Model Structure

Acceptance Criteria

After core feature analysis is done, create a mockup diagram of the model structure in MongoDB.

The goal here is to understand our routing and what tables we'll want based on the features we want to support.

Dependencies

Create Init Page and User table

Acceptance Criteria

  • Fields:
    • First name
    • Last name
    • Biweekly takehome (after all deductions and taxes)
    • Field to enter in "Current Financial Goal"

Technical Details

  • We'll need to create the User table at least, but we might as well set up all the initial tables
    • We should test writing some values to them

Set up DB and Mongoose connection

Acceptance Criteria:

We have a connection to MongoDB Atlas through Mongoose

Technical Details:

  1. Create a Cluster in MongoDB Atlas
  2. Create a DB in MongoDB Atlas
  3. Get the connection string
  4. Copy the following code into app.js

//Set up mongoose connection var mongoose = require('mongoose'); var mongoDB = 'insert_your_database_url_here'; mongoose.connect(mongoDB, { useNewUrlParser: true , useUnifiedTopology: true}); var db = mongoose.connection; db.on('error', console.error.bind(console, 'MongoDB connection error:'));

Install Dependencies

Acceptance Criteria:

Initial dependencies are installed so we can use them during development

Make sure the following are installed

  • nodemon
  • mongoose
  • express-validator
  • async js
  • jade/pug

Technical Details:

  • Use --save-dev flag when appropriate
  • Update package.json with scripts for running nodemon

Analysis: Phase 1 Core Features

Narrow down the core features and technologies

Acceptance Criteria

  • txt file with core features, technologies, including a brief description of the layout of the site (include routes if possible)

Set up Express Application

Acceptance Criteria:

  • Have a working express application skeleton

Technical Details:

  • Express is already installed globally on our system
  • We can run >express XXXX and >npm install to create our express app framework and install dependencies

Create mockup navigation bar

Acceptance Criteria:

  • Create a mockup of the navigation bar

  • Nav bar

    • Home
    • Upload Transactions
    • Add Transactions
    • Spending breakdown
    • About Page

Analysis: Typescript

Do research into whether using Typescript would benefit the organization of this project.

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.