move pages and make serve simplier

This commit is contained in:
samantha42
2026-09-11 10:04:29 +02:00
parent 989ae62915
commit b7cf68995d
6 changed files with 30 additions and 110 deletions
+173
View File
@@ -0,0 +1,173 @@
{{define "nav"}}
<div>
<p class="sidebar-label">navigate</p>
<div class="sidebar-links">
<a href="#about">about</a>
<a href="#product">product</a>
<a href="#install">Installation</a>
</div>
</div>
<div>
<p class="sidebar-label">links</p>
<div class="sidebar-links">
<a href="https://git.samantha42.xyz/samantha/accounting/releases">git repo</a>
</div>
</div>
<div>
<p class="sidebar-label">subjects</p>
<div class="skill-list">
<div class="skill-item">opinion</div>
<div class="skill-item">due diligence</div>
<div class="skill-item">performance</div>
</div>
</div>
{{end}}
{{define "body"}}
<section class="hero" id="about">
<p class="hero-eyebrow">Bookkeeping · 2026</p>
<h1>Administration<br><span>infrastructure</span>
</h1>
<p class="hero-bio">
buildout of internal tooling the hardship of this endiver and leason learn of programming for reliability and easy use.
</p>
</section>
<section id="paradigms">
<div class="section-head">
<h2>Record Keeping paradigm</h2>
</div>
<div class="exp-card">
<div class="exp-header">
<span class="exp-title">Emultable entries/data</span>
</div>
<p class="exp-body">
Book keeping and other record keeping tasks, benefit of not having a real deletation of data/infomation. Rather have a record of change.
<br>
</p>
</div>
<br>
<p class="exp-body">
Programming can be a chore, but for me it's a source of joy. It's something I do as a hobby, and I
don't use LLMs much. It's about having fun and making a fool of yourself. It's not about how good it is,
in this case, I'd rather just listen to music and drink a cup of tea. I enjoy the struggle to debug, the small beauty in understanding why a bug was there in the first place.
</p>
<img src="/static/images/sql.png" style="width: 70%; padding: 10px 15% 10px; align-self: center;">
<p class="exp-body">
I chose SQLite3 because it's a SQL-based database that doesn't need a live server, just a single db file.
The idea is to use a monolith to control the book records, so no collisions should happen. The IDs and other
fields are kept very basic because of SQLite's minimal type support.
Entries are ints and strings. The history of changes, saved as events, is stored as blobs, since retrieving
these should only happen on rare occasions. Mostly the resulting changes are saved, while the more granular
event-by-business-action log is timestamped, and its id relates to the resulting entries (account movements).
</p>
<img src="/static/images/directory.png" style="width: 60%; padding: 10px 15% 10px; align-self: center;">
<p class="exp-body">
Space can be a concern, so I save attachments in a compressed format. By separating attachments, a linked
directory could be saved on a hard disk drive instead, as these will probably almost never get accessed after
saving. Only occasionally in an audit scenario.
<br>
The filename is the id from the db. This way, if there's ever a corruption scare, I could read the db as a
text file and find the metadata from the id. It also makes naming irrelevant, so filenames can't collide.
</p>
</section>
<section id="product">
<div class="section-head">
<h2>Web based access</h2>
</div>
<div class="exp-card">
<div class="exp-header">
<span class="exp-title">minimal</span>
</div>
<p class="exp-body">
later versions will have more user account restricted access, in this beta version, web access is consider the same user.
<br>
I can assume all actions is myself as i self host on my local network.
</p>
</div>
<br>
<img style="width: 25rem; padding: 10px;" src="/static/images/image.png">
<p class="exp-body">
This is first look at the testing of the web ui of the bookkeeping software.
The alerts represent the current failure to comply with the law, is no attachments have been filed to these evenets.
<br>
The Blue highlighted event of synthitc nature, as it is created by the system as the resulting section of the book have yet to be moved to balance as a result.
<br>
<br>
Most of these posted done via the command line (cli) tool as this will give 100% control of the events and the underlying entries
<br>
Depreciation and amortization will soon be automatic as "notes" will soon contain the data such as lifespan of assets and other human insight infomation, like the accoutning method in use.
</p>
</section>
<section id="install">
<div class="section-head">
<h2>Installation Guide</h2>
</div>
<div class="exp-card link" onclick="window.open('https://git.samantha42.xyz/samantha/accounting/releases', '_blank')">
<div class="exp-header">
<span class="exp-title">Selfhosting for free</span>
<div>
<span class="exp-tag">linux</span>
<span class="exp-tag red">BETA</span>
</div>
</div>
<p class="exp-body">Command: ./klacq_acc_linux_xx.xx --port=8081</p>
<br>
<p class="exp-body">Password enable by setting ".env" file with PASSWORD_HASH="secret" secret is bcrypt</p>
<br>
<p class="exp-body"> Free to run on your own machine or server. No account needed.
</p>
<div style="font-family: 'DM Mono', monospace; font-size: 11px; color: var(--muted); letter-spacing: 0.05em; margin-bottom: 8px;">
DATA LOCATIONS <span style="opacity:0.7;">(relative to program directory)</span>
</div>
<table class="info-table" style="width:100%;">
<tbody>
<tr>
<td style="font-family:'DM Mono', monospace; font-size:12px; width: 40%;">/data/app.db</td>
<td style="font-family:'DM Sans', sans-serif; font-size:12px; color: var(--muted);">Main database</td>
</tr>
<tr>
<td style="font-family:'DM Mono', monospace; font-size:12px;">/data/attachments</td>
<td style="font-family:'DM Sans', sans-serif; font-size:12px; color: var(--muted);">Receipts &amp; documents</td>
</tr>
<tr>
<td style="font-family:'DM Mono', monospace; font-size:12px;">/data/reports</td>
<td style="font-family:'DM Sans', sans-serif; font-size:12px; color: var(--muted);">Generated reports</td>
</tr>
<tr>
<td style="font-family:'DM Mono', monospace; font-size:12px;">/data/config.json</td>
<td style="font-family:'DM Sans', sans-serif; font-size:12px; color: var(--muted);">company info</td>
</tr>
</tbody>
</table>
</div>
</section>
{{end}}
+131
View File
@@ -0,0 +1,131 @@
{{define "nav"}}
<div>
<p class="sidebar-label">pages</p>
<div class="sidebar-links">
<a href="/research">Research</a>
<a href="/bookkeeping">Bookkeeping</a>
<a href="/personal">Personal</a>
</div>
</div>
<div>
<p class="sidebar-label">skills</p>
<div class="skill-list">
<div class="skill-item">Excel</div>
<div class="skill-item">Python</div>
<div class="skill-item">SQL</div>
<div class="skill-item">Go</div>
<div class="skill-item">Git</div>
<div class="skill-item">Linux</div>
</div>
</div>
<div>
<p class="sidebar-label">location</p>
<div style="font-family:var(--ff-mono);font-size:0.75rem;color:var(--muted);">Denmark<br>Aalborg</div>
</div>
<div>
<p class="sidebar-label">languages</p>
<div class="lang-row">
<span class="lang-badge">Danish</span>
<span class="lang-badge">English</span>
</div>
</div>
{{end}}
{{define "body"}}
<section class="hero" id="about">
<p class="hero-eyebrow">About Me · 2026</p>
<h1 >Samantha<br><span>Vero Friis</span>
</h1>
<p class="hero-bio">Bachelor's student in Business Administration seeking an entry-level analyst or
finance-related role while studying. Strong numerical skills, advanced Excel, and experience in company, risk,
and financial analysis. Analytical, detail-oriented, and efficiency-focused.</p>
<div class="hero-meta">
<span>
<span class="available">Available</span>
<span class="exp-tag">email: me@samantha42.xyz</span>
<a href="/static/cv.pdf" target="_blank" rel="noopener">
<button style="background: var(--surface);">Download CV</button>
</a>
</div>
</section>
<section id="experience">
<div class="section-head">
<h2>experience</h2>
</div>
<div class="exp-grid">
<div class="exp-card link" onclick="window.location.href='/research'">
<div class="exp-header">
<span class="exp-title">Independent Equity Research</span>
<span class="exp-tag">finance</span>
</div>
<p class="exp-body">Fundamental analysis using SEC filings (10-K, 10-Q) and earnings reports. Assess
profitability, liquidity, risk factors, and long-term business sustainability. Handle incomplete or
low-transparency information through structured cross-validation.</p>
</div>
<div class="exp-card link" onclick="window.location.href='/bookkeeping'">
<div class="exp-header">
<span class="exp-title">Bookkeeping &amp; Administration</span>
<span class="exp-tag">Record keeping</span>
</div>
<p class="exp-body">Excel to In house Bookkeeping tooling and backups and safe sql databse for larger scale. made to better comply with lawmakers in KLACQ ApS(small self owned company) currently selling SaaS products.
<br>
<a href="https://klacq.eu" download="Samantha_Vero_Friis_CV.pdf">
<button style="background: var(--surface);">Klacq website</button>
</a>
</div>
</div>
</section>
<section id="education">
<div class="section-head">
<h2>education</h2>
</div>
<div class="edu-grid">
<div class="edu-card">
<div class="edu-year">2025 — present</div>
<div>
<div class="edu-degree">Bachelor of Economics &amp; Business Administration (HA)</div>
<div class="edu-inst">Aalborg University · Expected 2028</div>
</div>
</div>
<div class="edu-card">
<div class="edu-year">2024 — 2025
<br>
<span class="edu-tag tag-dropped">discontinued</span>
</div>
<div class="edu-body">
<div class="edu-degree">Mathematics-Technology (BSc)</div>
<div class="edu-inst">Aalborg University · 1 semester</div>
</div>
</div>
<div class="edu-card">
<div class="edu-year">2020 — 2023</div>
<div>
<div class="edu-degree">HTX Technical Upper Secondary Education</div>
<div class="edu-inst">Viden Gymnasier</div>
<div class="edu-detail">Mathematics A, Biology B · Study project: Mathematics &amp; Technology</div>
</div>
</div>
</div>
</section>
<section id="interests">
<div class="section-head">
<h2>interests</h2>
</div>
<div class="exp-grid">
<div class="exp-card link" onclick="window.location.href='/personal'">
<div class="exp-header">
<span class="exp-title">Free time Interest</span>
<span class="exp-tag">Personal</span>
</div>
<p class="exp-body">Movies, computers, PC gaming and board games</p>
</div>
</div>
</section>
{{end}}
+98
View File
@@ -0,0 +1,98 @@
{{define "nav"}}
<div>
<p class="sidebar-label">subjects</p>
<div class="skill-list">
<div class="skill-item">movies</div>
<div class="skill-item">music</div>
<div class="skill-item">games</div>
<div class="skill-item">linux</div>
<div class="skill-item">git</div>
<div class="skill-item">programing</div>
</div>
</div>
{{end}}
{{define "body"}}
<section class="hero" id="about">
<p class="hero-eyebrow">Personal interests · 2026</p>
<h1 >Links Tree &<br><span>Playlists</span>
</h1>
</section>
<section id="research">
<section id="interests">
<div id="interests-body">
<div class="section-head">
<h2>Link Tree</h2>
</div>
<div class="exp-grid">
<div class="exp-card link" onclick="window.location.href='https://letterboxd.com/samantha42/'">
<div class="exp-header">
<span class="exp-title">Movies</span>
<span class="exp-tag">LetterBoxed</span>
</div>
<p class="exp-body">film reviews/ratings and watchlist</p>
</div>
<div class="exp-card link" onclick="window.location.href='https://git.samantha42.xyz/samantha'">
<div class="exp-header">
<span class="exp-title">Git repo</span>
<span class="exp-tag">Gitea profile</span>
</div>
<p class="exp-body">Personal public repos.</p>
</div>
<div class="exp-card link" onclick="window.location.href='https://steamcommunity.com/id/samantha42/'">
<div class="exp-header">
<span class="exp-title">Games</span>
<span class="exp-tag">Steam</span>
</div>
<p class="exp-body">games and inventory</p>
</div>
</div>
</div>
<br>
<div class="section-head">
<h2>Lunix rice</h2>
</div>
<p class="exp-body">I love my custom Linux setup. I use Hyprland, which automatically arranges app windows
on my screen so everything stays organized without dragging things around. I also use Quickshell, which
lets me customize menus, shortcuts, and system controls to work exactly how I want.
My system is based on Arch Linux or Manjaro Linux, which are versions of Linux that give you more
control and customization than a typical computer setup. The result is a clean, fast, and super
efficient desktop that's hard to go back from.
<a class="outlink" href="https://git.samantha42.xyz/samantha/dotfiles">
<button style="background: var(--surface);">Git repo</button>
</a>
</p>
<img src="/static/images/rice.png" style="width: 95%; align-self: center;">
<div class="section-head">
<h2>programing</h2>
</div>
<p class="exp-body">
Programming can be a chore, but for me it's a source of joy. It's something I do as a hobby, and I
don't use LLMs much. It's about having fun and making a fool of yourself. It's not about how good it is,
in this case, I'd rather just listen to music and drink a cup of tea. I enjoy the struggle to debug, the small beauty in understanding why a bug was there in the first place.
</p>
<br>
<div class="section-head">
<h2>Music playlists</h2>
</div>
<iframe data-testid="embed-iframe" style="border-radius:12px" src="https://open.spotify.com/embed/playlist/6cp6fCnsOaNd2WDTPRuOR1?utm_source=generator" width="100%" height="200" frameBorder="0" allowfullscreen="" allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture" loading="lazy"></iframe>
<iframe data-testid="embed-iframe" style="border-radius:12px" src="https://open.spotify.com/embed/playlist/4aGMTgl6eNMspp37jrQ799?utm_source=generator" width="100%" height="200" frameBorder="0" allowfullscreen="" allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture" loading="lazy"></iframe>
<iframe data-testid="embed-iframe" style="border-radius:12px" src="https://open.spotify.com/embed/playlist/4yxijQILgLkF0UDCUDAauc?utm_source=generator" width="100%" height="200" frameBorder="0" allowfullscreen="" allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture" loading="lazy"></iframe>
</section>
{{end}}
+102
View File
@@ -0,0 +1,102 @@
{{define "nav"}}
<div>
<p class="sidebar-label">subjects</p>
<div class="skill-list">
<div class="skill-item">opinion</div>
<div class="skill-item">due diligence</div>
<div class="skill-item">performance</div>
</div>
</div>
{{end}}
{{define "body"}}
<section class="hero" id="about">
<p class="hero-eyebrow">Equity Research · 2026</p>
<h1 >Fundamental<br><span>value exploration</span>
</h1>
<p class="hero-bio">
The truth I keep coming back to is simple: find value grounded in the fundamental numbers of a company.
<br>
My approach is rooted in fundamental analysis using SEC filings (10-K, 10-Q), earnings reports, profitability, liquidity, risk factors, and long-term business sustainability. In low-transparency situations I rely on structured cross-validation across sources.
<br>
A pattern I keep seeing is CEOs speaking just close enough to reality to generate a short-term price boost, then moving the goalposts when reality catches up. What companies state in filings and what they communicate to retail or even professional investors can be two very different stories. Guidance only needs to reach far enough into the future to say almost anything.
</p>
</section>
<section id="research">
<div class="section-head">
<h2>Current stock analysis</h2>
</div>
<p class="hero-bio">
The reports listed are what I still consider actionable and aligned with my opinion on the given company at this time. Understand that the information and the time of writing may be dated. The mispricing thesis remains valuable regardless.
<br>
Personal opinion only, not financial advice, and I'm not liable for anyone else's use of this analysis.
</p>
<br>
<div class="exp-card link" onclick="window.open('/static/pdf/mstr.pdf', '_blank')">
<div class="exp-header">
<span class="exp-title">MSTR: Strategy</span>
<div>
<span class="exp-tag">due diligence</span>
<span class="exp-tag red">Sell</span>
</div>
</div>
<p class="exp-body">
The company only owns btc by issuing debt and preferred stock offering.
<br>
The company is expensive btc at its best and ponzi scheme at its worst.
</p>
</div>
<br>
<div class="exp-card link" onclick="window.open('/static/pdf/novo.pdf', '_blank')">
<div class="exp-header">
<span class="exp-title">Novo.B/NVO: Novo Nordisk A/S</span>
<div>
<span class="exp-tag">due diligence</span>
<span class="exp-tag green">buy</span>
</div>
</div>
<p class="exp-body">
The product sales of wieght loss drugs are highclass, pipeline is undervalued.
<br>
Pipeline and wegovy pil is not reconsiced correctly as high focus on expireation of current sold product. high pessimistic view of pipeline.
</p>
</div>
<br>
<div class="section-head">
<h2>Equity portfolio performance</h2>
</div>
<p class="hero-bio">
year to date performance has its volatility/risk and statistical issues, meaning this have very little predictive power. hard to say if these numbers will continue year by year.
</p>
<br>
<div class="exp-card">
<div class="exp-header">
<span class="exp-title">Trades</span>
</div>
<div>
<p class="exp-body"> mostly long trades on NOVO, MEARSK, ORTSED and VWS with a low wieght of puts on RGTI </p>
</div>
</div>
<br>
<div class="exp-card">
<div hx-get="/static/components/eq.html" hx-trigger="load" hx-swap="outerHTML">
<span class="spinner">Loading chart...</span>
</div>
</div>
</section>
{{end}}