Giter VIP home page Giter VIP logo

receiptoverview's Introduction

Receipt Overview

A little piece of software, to digitalize Receipts and export them as a .csv to be used in R for data analysis and statistics.

Initial Setup

The application needs a database in the following path: /Data/data.db After starting the application for the first time, an empty data.db is created. This one can be deleted. Instead, use the DB Browser for SQLite (https://sqlitebrowser.org/) to run the "create_db.sql" script which is located in the same directory (/Data/create_db.sql) The resulting database needs to be saved as "data.db" in the same directory (/Data/data.db). Afterwards, the application is ready for usage.

Shortcuts/Hotkeys:

Hotkey Function
Ctrl+N New position
Delete Remove selected position
Enter Add current entry to collection
+ Copy selected entry
- Remove selected entry
Ctrl+S Save current position

Take notice, that the "Delete" Button is a Hotkey and therefore should not be used to remove charactes. Use "Backspace" instead.

grafik

Made with

Avalonia UI 11.0.10 with the build-in Reactive UI MVVM Framework
Avalonia Datagrid [NuGet]
Avalonia Forst Theme (https://theme.xaml.live/)
C# & dotnet 7.0
SQLite 3 & Microsoft.Data.Sqlite [NuGet]
Icons8 (https://icons8.com/)

Build for

Fedora Linux 39 & 40 (KDE, x11)
Windows 10

(not tested on other systems, but should build and run wherever the dotnet 7.0 Runtime/SDK is installed)

For Code-Readers

The goal was fast development, with no plans to expand further than the base functionalities (which are: inserting Receipts and their entries and export everything to a csv file). Therefore, maintenance was not a priority, which results in a somewhat messy Codebase.

License

MIT

receiptoverview's People

Contributors

al-develop avatar

Watchers

 avatar

receiptoverview's Issues

ToDo: Update README.md

Switch image to an up-to-date image with a couple sample positions and entries, displaying the indicator for saved/unsaved positions.

Support multiple Categories

current: only one Category per Item
to implement: several categories per Item.

To Do:
DB

  • create "Category" Table and add it to the creation script.
  • adjust already existing entries: move all categories into to the new table. Add an CategoryId to the corresponding Item instead.

Code

  • adjust the sql scripts to support the new table
  • add a new Model for the new table
  • add CRUD to the DataAccess for the new Table
  • adjust the existing Entry Model, to have a CategoryId instead of a Category
  • adjust the EntryViewModel to convert a Entry and a Category Model into the Category String and vice versa, separated by comma - thus the UI does not need to be changed.
  • verify, that the Autofill can support the new feature.
  • adjust eh CsvExport to support the new feature.
    • since the CsvExport uses models, instead of ViewModel, the Categories need to be concatenated into a string for the corresponding entry with a symbol which is support in csv (e.g. not necessarily a comma)

Users can then add several Categories to an Entry like this: Category1, Category2, Category3, ...
which is then being processed separately into the Models, and then inserted in two different Tables

Then, a new release can be build and uploaded

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.