priznanie.digital
Tax filing application for self employed professionals in Slovakia.
Daňové priznanie pre živnostníkov s paušálnymi výdavkami (DPFO typ B)
Daňové priznanie je jeden z najväčších byrokratických strašiakov podnikateľov. A pritom pri zadaní pár jednoduchých údajov si ho môže vyplniť ktokoľvek za pár minút bez väčších problémov. Chceme takto malými krokmi uľahčiť život státisicom živnostníkov. Ak ste SZČO (živnostník) a uplatňujete si paušálne výdavky, tak vám pomôžeme vyplniť daňové priznanie (k dani z príjmov fyzickej osoby, typ B) a tiež vás detailne prevedieme aj procesom podania na stránkach Finančnej správy.
Project details
Tech stack:
- written in Typescript, styles via css-modules
- design based on GOV.UK design system, modified for navody.digital
- based on Next.js.
- financial calculations via decimal.js.
- forms via formik
- testing via jest and cypress (with cypress dashboard)
- code formatted via prettier
- PDF generated by hummus
⚠️ library deprecated, refactoring welcome- unfortunatelly the more popular PDFKit library has no support for editing existing files
To contribute fork this Github repo and create a pull request. If you are not familiar with the process see this guide.
How to develop
Install dependencies:
yarn
Run the application:
yarn dev
Open http://localhost:3000/ in browser.
Run tests
Unit tests via jest:
yarn test
Functional tests via Cypress:
yarn cy:run
Run functional tests interactively:
yarn cy:open
Before committing your code don't forget to format and check syntax:
yarn prettier
yarn lint
yarn check:ts
Feature flags
you-shall=not-pass
allows direct access to any URL, you dont have to go through whole flow. Also enables debug mode for redirect at the end of the flow (see Navody.Digital Integration below).
Each feature flag is a cookie with value. You can set cookie in dev tools console (eg. document.cookie='you-shall=not-pass'
) or browser extension (Chrome, Firefox).
Environment variables
Add .env
file with env variables:
- autoformtoken (for autocomplete api)
- sendinbluetoken (for sending feedback emails via 3rd party service sendinblue)
Environments
- staging: https://priznanie.staging.slovensko.digital/
- production: https://priznanie.digital/
Infrastructure
- Github repository: https://github.com/priznanie-digital/priznanie-digital
- Deployed to staging env via Github Action - Deployment
Navody.Digital Integration
When the flow is complete we redirect to Navody.Digital. It takes care of sending emails and downloading files.
To debug this integration set you-shall=not-pass
cookie. Instead of automatic redirect you will be able to redirect manually (by clicking a button) or download the XML file. This approach is used also for functional tests.
Pull request checks
Tested via Github Action - Quality Assurance:
- Lint and Typescript check:
yarn lint yarn check:ts
- Unit tests:
yarn test --ci
- Functional tests:
- build and start server:
yarn build yarn start
- run functional tests via Cypress - cypress-io/github-action
- runs in parallel and reports to Cypress Dashboard
Talk to us
You can reach us on Slovensko.Digital slack, channel #priznanie_digital.