Giter VIP home page Giter VIP logo

expense's Introduction

Expense is a user-friendly expense tracking web-application designed to help you take control of your personal and shared finances. With cross-device syncing, offline accessibility, and advanced features, managing your expenses has never been easier.

Main Features

  • Built-in cross-device sync: Seamlessly synchronize your data across multiple devices, manage your expenses wherever you are, on any device.

  • Available even offline: Access and manage your expenses even without an active internet connection. Expense will sync your data once you are back online.

  • Flexible categorization: Easily sort your expenses by creating categories, better understand where your money is going.

  • Collaborative tracking: Create groups, add members, and easily track expenses together with your family, friends and loved once.

  • Automatic currency conversion: Do you travel a lot and have expenses in multiple currencies? Expense automatically converts currencies based on the latest exchange rates.

  • Pie charts for week/month/year: Visualize your spending habits with beautiful and easy-to-understand pie charts, analyze your expenses over different periods.

Getting Started

To start using Expense, sign up with you Google Account at https://expense.vlad-iakovlev.dev.

License

This project is open source and available under the MIT License.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request or open an Issue.

expense's People

Contributors

dependabot[bot] avatar github-actions[bot] avatar renovate[bot] avatar vlad-iakovlev avatar

Stargazers

 avatar  avatar

Watchers

 avatar

expense's Issues

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

docker-compose
docker-compose.yml
dockerfile
Dockerfile
  • node 18
github-actions
.github/workflows/ci.yml
  • actions/checkout v3
  • actions/setup-node v3
.github/workflows/update-currency-names.yml
.github/workflows/update-currency-rates.yml
npm
package.json
  • @dnd-kit/core ^6.0.8
  • @dnd-kit/sortable ^7.0.2
  • @dnd-kit/utilities ^3.2.1
  • @heroicons/react ^2.0.18
  • @next-auth/prisma-adapter ^1.0.7
  • @prisma/client ^4.15.0
  • @types/node ^20.2.5
  • @types/react ^18.2.8
  • @types/react-dom ^18.2.4
  • @types/uuid ^9.0.1
  • autoprefixer ^10.4.14
  • chalk ^5.2.0
  • date-fns ^2.30.0
  • default-import ^1.1.5
  • dotenv ^16.1.4
  • framer-motion ^10.12.16
  • immer ^10.0.2
  • mongodb ^5.6.0
  • next ^13.4.4
  • next-api-middleware ^2.0.1
  • next-auth ^4.22.1
  • next-pwa ^5.6.0
  • node-fetch ^3.3.1
  • node-html-parser ^6.1.5
  • postcss ^8.4.24
  • react ^18.2.0
  • react-dom ^18.2.0
  • sharp ^0.32.1
  • tailwind-merge ^1.13.0
  • tailwindcss ^3.3.2
  • ts-node ^10.9.1
  • use-debounce ^9.0.4
  • uuid ^9.0.0
  • zod ^3.21.4
  • @trivago/prettier-plugin-sort-imports ^4.1.1
  • @typescript-eslint/eslint-plugin ^5.59.9
  • eslint ^8.42.0
  • eslint-config-next ^13.4.4
  • eslint-config-prettier ^8.8.0
  • husky ^8.0.3
  • lint-staged ^13.2.2
  • prettier ^2.8.8
  • prisma ^4.15.0
  • typescript ^5.1.3

  • Check this box to trigger a request for Renovate to run again on this repository

Bind wallets to users

  • Bind wallets to users
  • Allow wallets to be filtered by users
  • Think about the visibility of shared wallets when filtering by user is active

Create settings for wallet

  • Create a modal window or page for the wallet settings
  • Move name editing to wallet settings
  • Move currency editing to wallet settings

Create settings for group

  • Create a page or modal window for group settings
  • Move name editing to group settings
  • Move default currency editing to group settings
  • Add a tooltip for the default currency parameter so the user knows how to use it
  • Move user management to group settings (invite, delete)
  • Move category renaming to group settings

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Location: renovate.json
Error type: Invalid JSON (parsing failed)
Message: Syntax error: expecting ':' near e" true }

Improve accessibility

There are issues with accessibility all over the app.

Steps:

  • Find a good tool to test - Chrome DevTools
  • Test what we have
  • Test keyboard navigation

Keyboard navigation

Improve keyboard navigation:

  • Use focus-trap or different plugin to split navigation in levels. So user will navigate through root items, then selects item and navigates inside it
  • If user focuses to some item on non-root level, they should navigate on selected level
  • Allow navigation with arrow keys

Parallel sync requests on slow internet

When sync request took more time than expected we can get in situation with two sync requests in parallel. This could cause writing data in wrong order. This can lead to data loss.

How to reproduce:

  1. Open Expense.
  2. Open debugger and set network throttling to "Slow 3G".
  3. Create something.
  4. Wait 2 seconds for sync start.
  5. Switch to other tab and then back.

After these steps you'll see two sync requests with the same data.

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.