Coder Social home page Coder Social logo

wingkwong / squirrel Goto Github PK

View Code? Open in Web Editor NEW
11.0 4.0 14.0 206 KB

:squirrel: A responsive expense tracker built with Django to help you manage your expenses :money_with_wings::money_with_wings::money_with_wings:

License: MIT License

Python 52.13% CSS 6.64% JavaScript 0.98% HTML 40.25%
django expense-tracker django-expense-tracker expense-management

squirrel's Introduction

Squirrel

FOSSA Status

About

A responsive web application for expense tracking and analytics platform powered by Django

Installed apps:

  • django 2.0.8
  • django.contrib.admin
  • django.contrib.auth
  • django.contrib.contenttypes
  • django.contrib.sessions
  • django.contrib.messages
  • django.contrib.staticfiles
  • tracker.apps.TrackerConfig
  • django_tables2
  • django_filters
  • crispy_forms
  • tracker.templatetags.month_labels
  • social_django

Configured URLs:

  • /
  • /tracker
  • /tracker/add
  • /tracker/update/{id}
  • /analytics
  • /analytics/{year}
  • /analytics/{year}/{month}
  • /analytics/{year}/{month}/{day}
  • /accounts/register
  • /accounts/login
  • /accounts/logout
  • /accounts/profile/{id}
  • /dashboard
  • /auth/
  • /admin/

Templates:

Landing:

  • landing/index.html

Tracker:

  • tracker/expense_form.html
  • tracker/from_template.html
  • tracker/header.html
  • tracker/index.html
  • analytics/index.html

Accounts:

  • registration/login.html
  • registration/logged_out.html

Features:

  • Responsive
  • Expense Overview with filtering
  • Expense Addition
  • Expense Analytics by year, month or day
  • Google OAuth2

Prerequisites

  • Python >= 3.5
  • pip3

Setup Your Environment

  1. Fork this project
  2. Install from the given requirements file.
pip3 install -r requirements.txt
  1. Make Migrations
python3 manage.py makemigrations
  1. Migrate
python3 manage.py migrate
  1. Run
python3 manage.py runserver

Setup Your Google OAuth

  1. Go to Google Developers Console(https://console.developers.google.com/apis/library?project=_) and create a new project
  2. Go to credentials tab
  3. Create Credentials and choose OAuth Client ID
  4. Select Web Application and enter any name in 'Product name shown to users' under OAuth Consent Screen tab
  5. Set http://127.0.0.1:8000/auth/complete/google-oauth2/ in Authorized redirect URIs
  6. Under APIs and services tab, click on Google+ API and then click Enable
  7. Copy the Client ID and Client Secret Under settings.py
SOCIAL_AUTH_GOOGLE_OAUTH2_KEY='' # ClientKey
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET=''# SecretKey

Authors

Contributor

License

This project is licensed under the MIT License - see the LICENSE.md file for details

FOSSA Status

squirrel's People

Contributors

fossabot avatar tusharkapoor23 avatar wingkwong avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

squirrel's Issues

Change input field to date picker

Go to /tracker/add
The date field should be a date picker instead of text input

The same date picker should be also applied to the one in the page after clicking Filter

Settings

  • Create a Setting page
  • Allow the user to configure the number of records shown in Expense table
  • Allow the user to set the shortcut so that he/she can retrieve the data quickly when inputting similar data

Exporting User Data

Go to /tracker
Add a button called Export
When the button is clicked, a CSV file should be downloaded automatically containing all data

Google Login failed

DoesNotExist at /auth/complete/google-oauth2/
User matching query does not exist.

Shorten the large amount

Go to /analytics

Prerequisite:
Records with a large amount

Example:
if the amount is 3,020,231, it should be displayed as 3M instead.

Adding delete action

module: tracker

  • add a button called 'Delete' next to 'Edit' button
  • A popup box should be shown after clicking 'Delete' asking users for confirmation.
  • Once confirmed, delete the record.

Linking Month / Day sidebar item to corresponding month / day

Case:
Data exists in Mar 2018 and Apr 2018

Example:

  • Go to analytics/2018
  • March and April are shown in sidebar
  • Clicking March should link to analytics/2018/03 and clicking April should link to analytics/2018/04

Similarily,

  • Go to analytics/2018/04
  • Clicking a day, say 5, should link to analytics/2018/04/05

Convert Month number to Month

Add some dummy data
Go to /analytics/{year}/{month}
The nav bar shows the Month Number while Month is expected.

Example:
Current Nav Bar:
[3] [4] [5]

Expected:
[March] [April] [May]

Prerequisite:
Data has been created, in this case, in March, April, and May.

no such table: accounts_profile

After running

python manage.py migrate
python manage.py runserver

and trying to register at /register throws an error

Request Method: | POST
Request URL: http://127.0.0.1:8000/register/
Django Version: 2.0.4
Exception Type: OperationalError
Exception Value: no such table: accounts_profile

Updating Profile

  • Create a page for users to update their profiles
  • Users should be able to update the following items:
  1. Password
  2. Avatar
  3. Email Address
  4. Dob
  • Validations are required

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.