Skip to content

Commit 20407c7

Browse files
committed
Refactor code structure for improved readability and maintainability
1 parent 333ab00 commit 20407c7

4 files changed

Lines changed: 86 additions & 68 deletions

File tree

263 KB
Loading

blog/2026-03-30-relaunch-app-as-pwa/index.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Give it a try at [BelegScan.at](https://belegscan.at).
1313

1414
## What is BelegScan?
1515

16-
BelegScan reads Austrian cash register QR codes (RKSV - Registrierkassensicherheitsverordnung) and displays receipt data clearly. The web app works for free and runs directly in your browser – no app installation required.
16+
BelegScan.at reads Austrian cash register QR codes (RKSV - Registrierkassensicherheitsverordnung) and displays receipt data clearly. The web app works for free and runs directly in your browser – no app installation required.
1717

1818
## Key Features
1919

@@ -34,6 +34,8 @@ BelegScan validates the cryptographic signatures embedded in Austrian cash regis
3434
- **Compliance**: Helps businesses and consumers verify RKSV compliance
3535
- **Trust**: Provides instant verification that receipts are genuine and unmodified
3636

37+
![BelegScan Signature Validation](image/belegscan-signature-validation.jpg)
38+
3739
## Why PWA?
3840

3941
By relaunching as a Progressive Web App, BelegScan.at offers several advantages:

docusaurus.config.ts

Lines changed: 18 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import {themes as prismThemes} from 'prism-react-renderer';
2-
import type {Config} from '@docusaurus/types';
1+
import { themes as prismThemes } from 'prism-react-renderer';
2+
import type { Config } from '@docusaurus/types';
33
import type * as Preset from '@docusaurus/preset-classic';
44

55
const config: Config = {
@@ -42,8 +42,6 @@ const config: Config = {
4242
// },
4343
blog: {
4444
showReadingTime: true,
45-
// Please change this to your repo.
46-
// Remove this to remove the "edit this page" links.
4745
editUrl:
4846
'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/',
4947
},
@@ -69,13 +67,6 @@ const config: Config = {
6967
src: 'img/logo.svg',
7068
},
7169
items: [
72-
// {
73-
// type: 'docSidebar',
74-
// sidebarId: 'tutorialSidebar',
75-
// position: 'left',
76-
// label: 'Tutorial',
77-
// },
78-
// {to: '/blog', label: 'Blog', position: 'left'},
7970
{
8071
href: 'https://github.com/codeuctivity',
8172
label: 'GitHub',
@@ -85,42 +76,21 @@ const config: Config = {
8576
},
8677
footer: {
8778
links: [
88-
// {
89-
// title: 'Docs',
90-
// items: [
91-
// {
92-
// label: 'Tutorial',
93-
// to: '/docs/intro',
94-
// },
95-
// ],
96-
// },
9779
{
98-
title: 'Things',
80+
title: 'Awesome Stuff',
9981
items: [
10082
{
101-
label: 'Nuget',
83+
label: 'More nuget packages',
10284
href: 'https://www.nuget.org/packages?q=Codeuctivity',
10385
},
10486
{
10587
label: 'Buy me a coffee! Do it!',
10688
href: 'https://buymeacoffee.com/stesee',
10789
},
108-
// {
109-
// label: 'Stack Overflow',
110-
// href: 'https://stackoverflow.com/questions/tagged/docusaurus',
111-
// },
112-
// {
113-
// label: 'Discord',
114-
// href: 'https://discordapp.com/invite/docusaurus',
115-
// },
116-
// {
117-
// label: 'Twitter',
118-
// href: 'https://twitter.com/docusaurus',
119-
// },
12090
],
12191
},
12292
{
123-
title: 'More Things',
93+
title: 'More cool things',
12494
items: [
12595
{
12696
label: 'Blog',
@@ -132,6 +102,19 @@ const config: Config = {
132102
},
133103
],
134104
},
105+
{
106+
title: 'Even more things',
107+
items: [
108+
{
109+
label: 'NPM Packages',
110+
to: 'https://www.npmjs.com/~codeuctivity',
111+
},
112+
{
113+
label: 'Office document service',
114+
href: 'https://ods.codeuctivity.cloud/',
115+
},
116+
],
117+
},
135118
],
136119
copyright: `Copyright © ${new Date().getFullYear()} codeuctivity`,
137120
},

src/components/HomepageFeatures/index.tsx

Lines changed: 65 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,93 @@
1-
import clsx from 'clsx';
2-
import Heading from '@theme/Heading';
3-
import styles from './styles.module.css';
1+
import clsx from "clsx";
2+
import Heading from "@theme/Heading";
3+
import styles from "./styles.module.css";
44

55
type FeatureItem = {
66
title: string;
7-
Svg: React.ComponentType<React.ComponentProps<'svg'>>;
7+
Svg: React.ComponentType<React.ComponentProps<"svg">>;
88
description: JSX.Element;
99
};
1010

1111
const FeatureList: FeatureItem[] = [
1212
{
13-
title: 'Visual comparing',
14-
Svg: require('@site/static/img/NuGet.svg').default,
13+
title: "Encrypt your PDFs",
14+
Svg: require("@site/static/img/lockpdfy.svg").default,
1515
description: (
1616
<>
17-
Compare images. One of my nuget packages.<br></br><a href="https://www.nuget.org/packages/Codeuctivity.ImageSharpCompare/">
18-
ImageSharp based <img src="https://img.shields.io/nuget/v/Codeuctivity.ImageSharpCompare.svg" alt="Codeuctivity.ImageSharpCompare" />
19-
</a><br></br>
20-
<a href="https://www.nuget.org/packages/Codeuctivity.SkiaSharpCompare/">
21-
SkiaSharp based <img src="https://img.shields.io/nuget/v/Codeuctivity.SkiaSharpCompare.svg" alt="Codeuctivity.SkiaSharpCompare" />
17+
Encrypt and decrypt PDFs using LockPDFy. On premise and open source.{" "}
18+
<a href="https://www.microsoft.com/store/productId/9NC5KPZM2ZRM">
19+
<img
20+
src="https://img.shields.io/badge/Windows%20Store-LockPDFy-green?style=flat&logo=windows"
21+
alt="Windows Store"
22+
/>
23+
</a>
24+
<a href="/obtainium/redirect.html?r=obtainium%3A%2F%2Fadd%2Fhttps%3A%2F%2Fgithub.com%2Fstesee%2FPDFEncrypt">
25+
<img
26+
src="https://img.shields.io/badge/Obtainium-LockPDFy-green?style=flat&logo=android"
27+
alt="Obtainium"
28+
/>
29+
</a>
30+
<br></br>
31+
<a href="blog/Bye%20bye%20google%20play%20store">
32+
<img
33+
src="https://img.shields.io/badge/Google%20Play%20Store-LockPDFy-lightgrey?style=flat&logo=android"
34+
alt="Google Play Store"
35+
/>
2236
</a>
2337
</>
2438
),
2539
},
2640
{
27-
title: 'Encrypt your PDFs',
28-
Svg: require('@site/static/img/lockpdfy.svg').default,
41+
title: "Digitalize austrian invoices",
42+
Svg: require("@site/static/img/bonreader.svg").default,
2943
description: (
3044
<>
31-
Encrypt and decrypt PDFs using LockPDFy. On premise and open source. <a href="https://www.microsoft.com/store/productId/9NC5KPZM2ZRM">
32-
<img src="https://img.shields.io/badge/Windows%20Store-LockPDFy-green?style=flat&logo=windows" alt="Windows Store" />
45+
Scan QR codes on printed invoices and extract, store and export
46+
contained data.
47+
<a href="https://belegscan.at/">
48+
<img
49+
src="https://img.shields.io/badge/Web-BelegScan.at-blue?style=flat&logo=pwa"
50+
alt="BelegScan.at PWA"
51+
/>
3352
</a>
34-
<a href="/obtainium/redirect.html?r=obtainium%3A%2F%2Fadd%2Fhttps%3A%2F%2Fgithub.com%2Fstesee%2FPDFEncrypt">
35-
<img src="https://img.shields.io/badge/Obtainium-LockPDFy-green?style=flat&logo=android" alt="Obtainium" />
36-
</a><br></br>
53+
<br></br>
54+
<a href="/obtainium/redirect.html?r=obtainium%3A%2F%2Fadd%2Fhttps%3A%2F%2Fgithub.com%2FCodeuctivity%2Fcodeuctivity.github.io">
55+
<br></br>
56+
<img
57+
src="https://img.shields.io/badge/Obtainium-BonReader-green?style=flat&logo=android"
58+
alt="Obtainium"
59+
/>
60+
</a>
61+
<br></br>
3762
<a href="blog/Bye%20bye%20google%20play%20store">
38-
<img src="https://img.shields.io/badge/Google%20Play%20Store-LockPDFy-lightgrey?style=flat&logo=android" alt="Google Play Store" />
63+
<img
64+
src="https://img.shields.io/badge/Google%20Play%20Store-BonReaderFree-lightgrey?style=flat&logo=android"
65+
alt="Google Play Store"
66+
/>
3967
</a>
40-
4168
</>
4269
),
4370
},
4471
{
45-
title: 'Digitalize austrian invoices',
46-
Svg: require('@site/static/img/bonreader.svg').default,
72+
title: "Libraries",
73+
Svg: require("@site/static/img/NuGet.svg").default,
4774
description: (
4875
<>
49-
Scan QR codes on printed invoices and extract, store and export contained data.
50-
<a href="https://belegscan.at/"><br></br>
51-
<img src="https://img.shields.io/badge/Web-BelegScan.at-blue?style=flat&logo=pwa" alt="BelegScan.at PWA" />
52-
</a><br></br>
53-
<a href="/obtainium/redirect.html?r=obtainium%3A%2F%2Fadd%2Fhttps%3A%2F%2Fgithub.com%2FCodeuctivity%2Fcodeuctivity.github.io"><br></br>
54-
<img src="https://img.shields.io/badge/Obtainium-BonReader-green?style=flat&logo=android" alt="Obtainium" />
55-
</a><br></br>
56-
<a href="blog/Bye%20bye%20google%20play%20store">
57-
<img src="https://img.shields.io/badge/Google%20Play%20Store-BonReaderFree-lightgrey?style=flat&logo=android" alt="Google Play Store" />
76+
Compare images. One of my nuget packages.<br></br>
77+
<a href="https://www.nuget.org/packages/Codeuctivity.ImageSharpCompare/">
78+
ImageSharp based{" "}
79+
<img
80+
src="https://img.shields.io/nuget/v/Codeuctivity.ImageSharpCompare.svg"
81+
alt="Codeuctivity.ImageSharpCompare"
82+
/>
83+
</a>
84+
<br></br>
85+
<a href="https://www.nuget.org/packages/Codeuctivity.SkiaSharpCompare/">
86+
SkiaSharp based{" "}
87+
<img
88+
src="https://img.shields.io/nuget/v/Codeuctivity.SkiaSharpCompare.svg"
89+
alt="Codeuctivity.SkiaSharpCompare"
90+
/>
5891
</a>
5992
</>
6093
),
@@ -63,7 +96,7 @@ const FeatureList: FeatureItem[] = [
6396

6497
function Feature({ title, Svg, description }: FeatureItem) {
6598
return (
66-
<div className={clsx('col col--4')}>
99+
<div className={clsx("col col--4")}>
67100
<div className="text--center">
68101
<Svg className={styles.featureSvg} role="img" />
69102
</div>

0 commit comments

Comments
 (0)