A basic expense manager crud app - built with react and redux.
App Link: https://expensifyaks.herokuapp.com
- Google authentication.
- Text, amount and date based filters.
- Basic CRUD operations.
- Connected with realtime firebase db.
- Testing using Jest and Enzyme.
- Styled with Sass.
- For local setup, you have to first and setup create your firebase app and setup database, then in rules tab of database, paste following code :
{
"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
}
}
}
}
}
- In Authentication tab of firebase app, enable google sign-in method.
-
Clone the repo.
-
Create a file in root directory of app named as '.env.developement.' and use the following markup and add your firebase app credentials.
FIREBASE_API_KEY=
FIREBASE_AUTH_DOMAIN=
FIREBASE_DATABASE_URL=
FIREBASE_PROJECT_ID=
FIREBASE_STORAGE_BUCKET=
FIREBASE_MESSAGING_SENDER_ID=
-
Yarn must be installed to setup the app.
-
cd into the root dir of app and run following commands and then open http://localhost:8080 to access the app.
yarn install
yarn run dev-server