Code Monkey home page Code Monkey logo

homebugh's People

Contributors

chethanagopinath avatar ck3g avatar dependabot[bot] avatar fabiosoaresv avatar keepgen avatar kyrnich avatar m8051 avatar natalyt avatar phunq-0851 avatar salonigoyal2309 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

homebugh's Issues

Demo account

It can be a great idea to have a demo account, so everyone can test drive the application without the need to register.
The demo account should have prepopulated data, and should "reset" the data once a day.
The demo account should not have the ability to change the password.

Sub-issues:

Add a Cookie Consent notice

Render a Cookie Consent notice to a user at the top of the page.

Check the presence of the cookie_consent_accepted cookie on every page load.

If the cookie does not exist, render the "Cookie Consent" popup at the top of the page.
The "Cookie Consent" popup should contain:

  • "Cookie Consent" title
  • "We use cookies to give you the best online experience. By using our website, you agree to our use of cookies." message
  • "OK" button.

Clicking on the button creates a cookie_consent_accepted cookie with the true value.

Prevent demo users from changing the password and the email

Contributes to #33

Demo account should not have the ability to change the password and the email

Replace Edit Profile form /users/edit with the static text:

Email: <demo user Email>
Password: demo1234


The /users/edit page should behave differently for demo users.

When the logged-in user (or current_user) is a demo_user? the edit profile should not let to update the email and password for that user. It can be done by making the form read-only, or by replacing the form with the text information.

When the logged-in user is a regular user (demo_user? == false), the form should work as it works now. The user should be able to update the email and password.

Dependencies

Create a User Profile page

Create a User Profile page.

  • The page should render the current user's email.
  • The page should require authorization
  • The page should have an /users/profile URL.

Allow hiding certain accounts from the overall balance

Recurring payments

There are certain transactions (payments) that are repeating from time to time. Some examples of those transactions are monthly internet bill, a Netflix subscription, etc.

Sometimes it's easy to forget some of these recurring payments, especially when there are a bunch of them at the moment.

The goal here is to remove the burden of keeping all these repetitive transactions in mind. The application has to provide a way to create a list of such transactions. That list can play the role of reminders. Also, based on that list the application can suggest filling in a recurring transaction when time is due.

Sub-tasks

Create a RecurringPayment model

Create a model with the following fields:

  • title: string, not null
  • user_id: int, not null
  • category_id: int, not null
  • account_id: int, not null
  • amount: decimal, precision: 10, scale: 2, not null
  • frequency_days: int, not null
  • frequency: (int, not null, default 0) enum: "daily", "weekly", "monthly", "yearly"

Create a recurring payment from existing transaction

To optimize the user experience it can be converted to create recurring payments from existing transactions.

Clicking a button next to transaction should redirect a user to '/recurring_payments/new' and populate all fields.

Create a script to populate the demo account with dummy data

Contributes to #33

Dependencies

Create a rake task to seed a demo account with dummy data.

Required data

A demo user should have the following data.

  • Income category. For example "Salary"
  • Several spending categories. For example: "Grocery", "Clothes", "Rent"
  • Two accounts: "Cash", "Bank"
  • Two budget records
    • "Grocery" - 200
    • "Clothes" - 100
  • Several transactions
    • Account: "Bank", Category: "Salary", Amount: 2000, Date: 1st day 2 months ago
    • Account: "Bank", Category: "Rent", Amount: 500, Date: 15th day 2 months ago
    • Account: "Cash", Category: "Grocery", Amount: random 150-250, Date: 3rd day 2 months ago
    • Account: "Bank", Category: "Salary", Amount: 2000, Date: 1st day of the previous month
    • Account: "Bank", Category: "Rent", Amount: 500, Date: 15th day of the previous month
    • Account: "Cash", Category: "Grocery", Amount: random 150-250, Date: 3rd day of the previous month
    • Account: "Cash", Category: "Clothes", Amount: random 100-200, Date: 5th day of the previous month
    • Account: "Bank", Category: "Salary", Amount: 2000, Date: 1st day of the current month
    • Account: "Cash", Category: "Grocery", Amount: random 150-250, Date: today
  • Several cash flows:
    • From Account: "Bank", To Account: "Cash", Total Amount: random 500-1000, Date: 2nd day 2 months ago
    • From Account: "Bank", To Account: "Cash", Total Amount: random 500-1000, Date: 2nd day of the previous month
    • From Account: "Bank", To Account: "Cash", Total Amount: random 500-1000, Date: today
  • Run ArchiveTransactionsService#archive for last day:
    • 2 months ago
    • of the previous month

Move recurring payment to the next period

Contributes to #31

A user should be able to move an existing recurring payment to the next period by clicking a button.

The next period calculated from 'next_payment_on + frequency_amount * frequency'

Add option to delete user profile

Users (except demo) should be able to remove their accounts with all the data.

Create a "Delete User" page (GET /user/delete).
The page should be accessible only for signed-in users.

The page should contain:

  • "Delete this user" title
  • "Once you delete a user, there is no going back. Please be certain." warning message
  • "Current password" field.
  • "Delete this user" button

If the form is submitted with a valid password, the current user should be deleted from the database.
If the password is invalid the user should see the validation error message.

Update registration confirmation

Suggest users to check spam filter:

Remember: Check your spam filter

If you do not receive the confirmation message within a few minutes, please check your spam or junk e-mail folder and mark the e-mail "not spam", which should allow future messages to get through.

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.