Skip to content

💰 A dashboard web application for personal finance management.

Notifications You must be signed in to change notification settings

andrewzulaybar/synergy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

79 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Synergy

What is Synergy?

[syn·er·gy] /ˈsinərjē/: noun
The interaction or cooperation of two or more organizations, substances, or other agents to produce a combined effect greater than the sum of their separate effects. [Google, 2019]

Synergy is a simple dashboard web application for centralizing personal finance management. This application allows for the storage, visualization, and analysis of a user's accounts and transactions data.

What's the motivation behind this project?

Synergy was built with the following points in mind:

  • To simplify the UI of common dashboard budgeting applications. Often, the UI can become convoluted with widgets and provide an overload of information. Synergy aims to keep the UI simple, clean, and easy to navigate.
  • To increase awareness of the distribution of one's expenses. Synergy attempts to bring numbers to life through the usage of intuitive and beautiful charts that update dynamically.
  • To act as a single point of financial control. Managing several accounts at different institutions can be a bit tedious at times, especially if it requires having to use different applications. By integrating Plaid Link, Synergy aggregates account data and allows for a more effective, complete overview.

You can view a live version of the project at the following link: https://synergy-expenses.herokuapp.com/

Getting Started

Prerequisites

This project assumes that you have Node.js installed, and that you have accounts set up with MongoDB Atlas and Plaid.

Once you create a cluser in MongoDB Atlas, create a database called 'transactions' and two collections called 'transactionsCollection' and 'usersItems'. The former collection will store the transaction data, while the latter will store the user and item data.

Installing

  1. Clone the git repository into a local project folder.
git clone https://github.com/andrewzulaybar/expense-tracker.git
  1. Run cd client to change directories into the 'client' folder.

  2. Create a .env file, then add the following constant to the file:

// 'public-key' can be found on your Plaid Dashboard
REACT_APP_PLAID_PUBLIC_KEY='public-key' 
  1. In order to make changes to the server locally, go to the 'package.json' file and replace the line "proxy": "https://synergy-expenses.herokuapp.com/" with "proxy": "http://localhost:8000".

  2. Run cd .. to change directories out of the 'client' folder.

  3. Create a .env file at top level, then add the following constants to the file:

/** 
 *  Can be obtained from going into your cluster and following these steps:
 *  1. Press the 'Command Line Tools' tab
 *  2. Under 'Connect To Your Cluster', click the 'Connect Instructions' button 
 *  3. Under 'Choose a connection method', click the 'Connect Your Application' button
 *  4. Under 'Connection String Only', copy the connection string and replace <password> with your own password
 */
CONNECTION_STRING='connection-string'

// 'client-id', 'development-secret-key', and 'public-key' can all be found on your Plaid Dashboard
PLAID_CLIENT_ID='client-id'
PLAID_PUBLIC_KEY='public-key'
PLAID_SECRET_KEY='development-secret-key'
  1. Run npm run client-server-install to install dependencies.

  2. Start the server with npm run dev, and then open up http://localhost:3000.

Tests

Testing has not been integrated into the project as of [Aug. 26, 2019].

Built With

  • React - Front-end JavaScript library.
  • Ant Design - Front-end UI library with React components.
  • Node.js - Runtime JavaScript environment.
  • Express - Back-end framework for building REST API.
  • MongoDB Atlas - Cloud database service.

About

💰 A dashboard web application for personal finance management.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published