41 Commits

Author SHA1 Message Date
Peter Smit
fca040a44d chore(deps): bump prisma to 6.18.0
All checks were successful
CI / checks (push) Successful in 1m3s
2025-11-03 20:19:05 +01:00
Steven Sengchanh
d641540b65 Add currency and exchange rate with Frankfurter per expense 2025-04-21 01:31:14 +02:00
Steven Sengchanh
2814811aea Script to recreate currencies data 2025-04-21 00:49:43 +02:00
Lorenz Leutgeb
ffbcb6b74d Add expense category 'Life/Donation' (#315)
* Add expense category 'Life/Donation'

* Fix category name in migration

---------

Co-authored-by: Sebastien Castiel <sebastien@castiel.me>
2025-04-19 15:00:03 -04:00
Yuvaraj Sai
6c5c9d5bed Feat: Add export to CSV support (#292)
* install json2csv package

* add necessary labels

* add support convert the JSON to redable CSV format and export

* add a popover to export btton and provide options for exporting to JSON and CSV

* Use a DropdownMenu

* Translations

---------

Co-authored-by: Sebastien Castiel <sebastien@castiel.me>
2025-04-19 14:11:38 -04:00
Sebastien Castiel
66e15e419e Add tRPC, use it for group expenses, balances and information page (#246)
* Add tRPC, use it for group expense list

* Use tRPC for balances

* Use tRPC in group information + better loading states
2024-10-19 17:42:11 -04:00
Mert Demir
9a5674e239 Fix amount preview for scanned receipts (#227)
* no division of amount

* use gpt-4-turbo

* testing setup and naive test

* test multiple variants

* document

* correct locale names

* test large amounts

* test wth strings

* prettier
2024-09-28 18:39:01 -04:00
Sebastien Castiel
26bed11116 Update Next.js + Npm audit fix (#190)
* Audit fix

* Upade Next
2024-08-02 12:18:49 -04:00
Tuomas Jaakola
4f5e124ff0 Internationalization + Finnish language (#181)
* I18n with next-intl

* package-lock

* Finnish translations

* Development fix

* Use locale for positioning currency symbol

* Translations: Expenses.ActiveUserModal

* Translations: group 404

* Better translation for ExpenseCard

* Apply translations in CategorySelect search

* Fix for Finnish translation

* Translations for ExpenseDocumentsInput

* Translations for CreateFromReceipt

* Fix for Finnish translation

* Translations for schema errors

* Fix for Finnish translation

* Fixes for Finnish translations

* Prettier

---------

Co-authored-by: Sebastien Castiel <sebastien@castiel.me>
2024-08-02 11:26:23 -04:00
Sebastien Castiel
e990e00a75 Upgrade Next.js & React to latest versions (#159) 2024-05-29 22:25:52 -04:00
Stefan Hynst
d3fd8027a5 Implement "infinite scroll" for expenses (#95)
* Extract ExpenseCard vom ExpenseList

* Implement simple pagination of expenses (see #30)

- display only this year's entries by default
- a "Show more" button reveals all expenses

* Turn getPrisma() into constant "prisma"

- getPrisma() is not async and doesn't need to be awaited
- turn getPrisma() into exported constant "prisma"

* Select fields to be returned by getGroupExpenses()

- make JSON more concise and less redundant
- some properties were removed (i.e.instead of "expense.paidById" use "expense.paidBy.id")

* Remove "participants" from ExpenseCard

- no need to search for participant by id to get it's name
- name property is already present in expense

* Add option to fetch a slice of group expenses

- specify offset and length to get expenses for [offset, offset+length[
- add function to get total number of group expenses

* Add api route for client to fetch group expenses

* Remove "Show more" button from expense list

* Implement infinite scroll

- in server component Page
  - only load first 200 expenses max
  - pass preloaded expenses and total count

- in client component ExpenseList, if there are more expenses to show
  - test if there are more expenses
  - append preloading "skeletons" to end of list
  - fetch more expenses when last item in list comes into view
  - after each fetch increase fetch-length by factor 1.5
    - rationale: db fetch usually is not the issue here, the longer the list gets, the longer react needs to redraw

* Use server action instead of api endpoint

* Fixes

---------

Co-authored-by: Sebastien Castiel <sebastien@castiel.me>
2024-05-29 21:36:07 -04:00
Lauri Vuorela
c2b591349b add a prettier script for ease of use (#105) 2024-02-28 10:45:02 -05:00
Jan T
2af0660383 Optimize docker image size (#91)
* Move prisma to runtime dependencies

* Optimize Dockerfile and build script

* Fix: remove mention of generated next-env.d.ts in Dockerfile

* Add missing reset.d.ts file to Dockerfile

* Remove compression steps from Dockerfile and entrypoint script

* Add an env file with mocked env vars added for Docker production builds

* Use server actions to get runtime env vars

* Refactor types and names

* Rollback serverActions, use parsed Zod object for runtime env

* Reintroduce featureFlags object to avoid passing secret envs to the frontend

* Improve string to boolean coercion

Co-authored-by: Sebastien Castiel <sebastien@castiel.me>

* Run prettier autoformat

* Fix type issue, rename function to match behaviour better

---------

Co-authored-by: Lauri Vuorela <lauri.vuorela@gmail.com>
Co-authored-by: Sebastien Castiel <sebastien@castiel.me>
2024-02-14 10:18:30 -05:00
Sebastien Castiel
4a9bf575bd Create expense from receipt (#69)
* Create expense from receipt

* Add modal

* Update README
2024-01-30 16:36:29 -05:00
Sebastien Castiel
9876d7045f Use carousel to display images 2024-01-28 23:28:44 -05:00
Sebastien Castiel
d43e731fe1 Attach documents to expenses (#64)
* Upload documents to receipts

* Improve documents

* Make the feature opt-in

* Fix file name issue
2024-01-28 18:51:29 -05:00
Sebastien Castiel
7956156d70 Upgrade Next.js to 14.1.0 2024-01-24 09:50:37 -05:00
Sebastien Castiel
89ee5ae247 Add date and bring back group name in exported filename (#54) 2024-01-23 16:41:07 -05:00
Sebastien Castiel
23524cb943 Clean project from marketing content (#50)
* Clean project from marketing content

* Remove some dependencies
2024-01-19 11:28:25 -05:00
Sebastien Castiel
92156b29cb Use combobox for category selector 2024-01-17 12:07:03 -05:00
Brandon Eng
ff6b84ff88 Group expenses (#48)
* Group expenses my date

* Group expenses my date

* typescript errors

* prettier

* getExpenseGroup

* update logic to use dayjs

* clean up
2024-01-17 09:42:00 -05:00
Sebastien Castiel
6b6d58e95e Add GitHub actions 2024-01-16 13:55:34 -05:00
Sebastien Castiel
beae336666 Add donation button (closes #40) 2024-01-14 11:43:48 -05:00
Max
76427c9f13 Docker container version (#39)
* + Dockerfile and compose file
+ Scripts dir and startup script
+ Build image npm script

* * Moves env to file

* + Tags image with info from package.json
* Moves image creation to script
* Updates README

* Update README.md

Co-authored-by: Sebastien Castiel <sebastien@castiel.me>

---------

Co-authored-by: Maxime Jacob <mjacob-no-reply@proton.me>
Co-authored-by: Sebastien Castiel <sebastien@castiel.me>
2024-01-11 15:25:08 -05:00
Sebastien Castiel
323b0ea128 Feedback button 2024-01-09 15:32:19 -05:00
Sebastien Castiel
1b9e624004 Ask the user who they are when opening a group for the first time (#7) 2024-01-09 08:53:51 -05:00
Sebastien Castiel
0a8e56f800 Add splitmode and shares to expenses (#11)
* Add splitmode and shares to expenses

* Update balances based on shares

* Change field size

* Form validation

* Redesign expense form

* Split unevenly by amount
2024-01-08 12:11:11 -05:00
Sebastien Castiel
f881aff5f9 Revert "Use modal dialogs for expense creation & edition (#10)"
This reverts commit 1e66efe516.
2023-12-19 09:44:09 -05:00
Sebastien Castiel
1e66efe516 Use modal dialogs for expense creation & edition (#10)
* First attemps at using route interception and modals

* Remove route interception

* Make it work

* Use Vaul on small screens

* Improve vaul
2023-12-19 09:36:40 -05:00
Ivan Alexandrov
c96c4f94b9 Replace unsafe id generator with nanoid (#4) 2023-12-13 12:28:35 -05:00
Sebastien Castiel
4f43e8e42a Add Plausible 2023-12-11 11:54:24 -05:00
Sebastien Castiel
c504a77338 PWA 2023-12-10 12:04:15 -05:00
Sebastien Castiel
92a21ff4c5 Migration script, improvements in expenses list 2023-12-08 14:56:51 -05:00
Sebastien Castiel
9cc819b0c9 Short IDs 2023-12-08 10:55:14 -05:00
Sebastien Castiel
6f077f141e Prevent removing participants with expenses 2023-12-07 20:12:40 -05:00
Sebastien Castiel
fb6cff2fe3 Share button 2023-12-07 19:38:03 -05:00
Sebastien Castiel
4bc03002e1 Dark mode 2023-12-07 18:35:09 -05:00
Sebastien Castiel
e747ec3ea0 Tabs 2023-12-06 18:57:35 -05:00
Sebastien Castiel
c72311d01a Better loading behavior 2023-12-06 12:39:54 -05:00
Sebastien Castiel
ed55c696cd First version 2023-12-05 17:39:05 -05:00
Sebastien Castiel
1fd6e48807 Initial commit from Create Next App 2023-10-27 16:10:10 -04:00