A project built with Node.js, Express.js, and MongoDB for you to track your personal expenses. π°π°π°
Please register an account via email address first, or you may quick login with Facebook, cause all the expenses would be only keep in your own account.
π To try this project, you could use the dummy data to login.
π This project is deployed on HEROKU as well !!!
- REGISTER: sign up an account with name, email, password
- LOGIN: sign in to review your own expenses
- LOGIN with 3rd-party account: quick login with Facebook account
- LOGOUT: sign out the account by clicking the logout button
- CREATE: record your expense (with item name, date, category, amount) at the create page
- READ: review all the expenses at the home page
- UPDATE: click the edit button to modify expense's data
- DELETE: click the delete button to delete the expense
- FILTER: filter the expenses by category
- Clone the files to your computer
git clone https://github.com/wentingliuu/expense-tracker.git
- Init: install the npm packages
cd expense-tracker
npm install
- Create .env file and store API Key in the file
touch .env
- Please see .env.example for reference.
- Please get your own Facebook API key from Facebook
- Run MongoDB Server
cd ~/mongodb/bin/
./mongod --dbpath <path to mongodb-data directory>
- While the terminal shows
waiting for connections on port 27017
, MongoDB has started successfully.
- Insert seeder
npm run seed
- Run the project
npm run dev
- While the terminal returns
Express is listening on localhost:3000
, please visit http://localhost:3000 on your browser.
After inserting the seeder, you may use the following dummy data to experience this web application.
Password | |
---|---|
user1@example.com | 12345678 |
user2@example.com | 12345678 |
- Visual Studio Code - development environment
- Node.js & npm - JavaScript runtime environment
- Express.js - web application framework
- Express-Handlebars - template engine
- MongoDB - document-oriented database
- Mongoose - MongoDB object modeling tool(OBM)
- body-parser - middleware
- method-override - middleware
- express-session - middleware
- passport - authentication middleware for Node.js
- bcrypt.js - middleware
- Facebook for Developer - get APP_ID & APP_SECRET for passport-facebook