Daily Finance App
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
client
config
server
test
.bowerrc
.gitignore
.jsbeautifyrc
.jshintrc
Gruntfile.js
LICENSE
README.md
bower.json
karma.conf.js
package.json

README.md

DailyFinance

DailyFinance (Live Demo) is a end to end full-stack web application for people easily to save the each single expense they spent any where any time through any devices, mobile, tablet or laptop as long as with the browsers, all you need is web connection.

Provide sign up account, login, retrieve password and basic CRUD operations.

Entire web app built with Node.js, Express, MongoDB, AngularJS, Bootstrap and RESTful API.

Take a look to see whether your account got created successfully or not (Link)

Run the app

Pre-required

You need to have those tools installed first before you go to next step.

Configuration

  • port defined the server port.
  • client specify the client code folder name.
  • server specify the server code folder name.
  • mongodbUrl point to mongoDB database.

Example:

{
  "port": "1985",
  "client": "client",
  "server": "server",
  "mongodbUrl": "Your MongoDB URL"
}

To run the application you need to have the mongoDB running on the local or remote machine first, to set up mongoDB please follow instruction on official website, after database start to run, all you need to do is to specify the mongoDB url in the config file, otherwise the code will broken and will not be able to run. After all those set up, please do.

npm install
bower install
grunt server

Server is up now!!!

Check the code quality

This will run jshint and jsbeautifier automatically.

grunt

Test

Run karma unit testing.

grunt test

Database (MongoDB)

Preserve all user profile and expense data in the mongoDB.

DB Schema

Users
Property Type
userId String
name String
email String
password String
Expenses
Property Type
userId String
expenseId String
name String
price Number
date String
time String

RESTful API

APIs

Content is application/json.

Endpoint Description
GET /api/expense Get expenses list
GET /api/expense/:expenseId Get expense detail
POST /api/expense Create new expense
PUT /api/expense/:expenseId Update the expense
POST /api/account Create new account
POST /api/password Retrieve password
DELETE /api/expense/:expenseId Delete the expense
DELETE /api/expense Delete all expenses
DELETE /api/account Delete account

Server

Deploying on Amazon EC2, list all used open source libraries for building entire back-end.

  • express for building entire server.
  • passport for authentication.
  • mongoose for modeling data, querying and connecting to mongoDB.
  • emailjs for sending email.

Client

List all used open source libraries for building entire front-end.

  • Use AngularJS as main javascript framework to build the MVC structure of UI.
  • Use Bootstrap 3 as main css framework to automatically adjust layout in different devices such as mobile, tablet and laptop.

Future feature

  • add loader
  • account setting
  • search bar
  • deposit VS purchase
  • grid view
  • social log in (fb, twitter, g+)
  • multi-currency

Author

twitter/Leohsieh0924
Leo Hsieh

Release History

  • 2013-10-05 v0.0.1 Initial release
  • 2014-01-06 v0.0.2 verify whether the email has been used or not when creating account

Bitdeli Badge