A website tour
lundqwist.se
A place for ideas & work
Every page of Bjarne M. Lundqwist's personal site.
Sitemap
lundqwist.se
/Admin → log in first
Admin area
(login required)
Home
/
CV
/CV
Stories
/Stories
Projects
/Projects
Portfolio
/Portfolio
About
/About
a story
…/Details/{id}
a project
…/Details/{id}
an item
…/Details/{id}
Visit site ↗
the real site
(new tab)
Log in
/Admin/Account/Login
Dashboard
/Admin
CV editor
/Admin/Cv
Post editor
/Admin/Posts?category=…
About editor
/Admin/About
Change password
…/Account/ChangePassword
On every page: the top menu, the contact footer and the SV / EN switch (/Language/Set)
/
Home
The front door: a warm welcome, a portrait, and five big doors into the rest of the site.
Hero
“A place for ideas & work”, set beside Bjarne’s portrait.
Five cards
CV, Stories, Projects, Portfolio and About. Each whole card is a link.
Always fast
No database call: the page is plain HTML, so it loads instantly.
lundqwist.se · Public pages · 3
/CV
Curriculum Vitae
Professional background as cards, grouped into four sections.
Four sections
Workplaces, Courses, Education, and Boards & Committees, each with a count.
Hover for more
Courses taught and notes slide open over a card. Ongoing roles wear a “Current” badge.
Svenska or English
A language switch; even dates follow it (“aug. 2022” or “Aug 2022”).
lundqwist.se/CV
Curriculum Vitae
SV | EN
Workplaces
Current
Courses taught
Courses · Education · Boards
lundqwist.se · Public pages · 4
/Stories
Stories
Thoughts, essays and things worth sharing, newest first.
Post cards
Date, title, summary and a thumbnail; the whole card opens the story.
SE or EN per story
Each story carries its own language tag, so the page needs no switch.
Drafts stay hidden
Only posts marked Published appear. Empty? It says “Nothing published yet.”
lundqwist.se · Public pages · 5
/Projects
Projects
Side projects, open source and experiments.
Same engine as Stories
One shared list page, filtered to the Project category.
Optional link
A project can point to its GitHub repository or a live demo.
Smart thumbnails
The chosen cover, or else the first picture in the text, becomes the card image.
lundqwist.se · Public pages · 6
/Portfolio
Portfolio
Websites and work Bjarne has built.
The address on the card
Each card shows which site it showcases, like “↗ example.se”.
“Visit site” button
The item page opens the real website safely in a new tab.
The story behind it
A case write-up in Markdown, with screenshots from the image library.
lundqwist.se · Public pages · 7
/{section}/Details/{id}
A single post
One shared page shows any story, project or portfolio item.
Way back
“← All stories”, “← All projects” or “← Whole portfolio” at the top.
Cover, then the text
A full-size cover image, then the body written in Markdown and safely cleaned.
No peeking
Guessing a number never opens a draft or a post from another section.
…/Stories/Details/7
← All stories
EN
cover image
Visit site ↗
lundqwist.se · Public pages · 8
/About
About me
Who Bjarne is and what drives him.
Written in the admin
The text is edited in Markdown on /Admin/About; no code change needed.
Two languages
English is the main text; a Swedish version shows when SV is chosen.
Never blank
Until the text is written, a friendly “Coming soon.” takes its place.
lundqwist.se · Public pages · 9
on every page
Menu & footer
The frame that wraps every page on the site.
Top menu
A ⬡ home mark and five links; the current page lights up. “Admin” appears only when logged in.
Contact footer
Postal address, e-mail, LinkedIn, and a Copy button for the Discord name.
Remembers your language
/Language/Set keeps SV or EN in a cookie for a year and returns you to the same page.
lundqwist.se/Stories
⬡
CV Stories Projects Portfolio About
Bjarne M. Lundqwist
Address
Contact
E-mail · LinkedIn · Discord
lundqwist.se · Public pages · 10
/Admin/Account/Login
Log in
The only door into the admin area. Every /Admin address sends you here first.
Five tries a minute
Login attempts are rate-limited, which stops password guessing.
Gives nothing away
A wrong name and a wrong password get the same message, in the same time.
Back where you were
After logging in you land on the admin page you asked for. Log out returns you Home.
…/Admin/Account/Login
ADMIN
Log in
User name
Password
Log in
lundqwist.se · Admin area · 11
/Admin
Dashboard
The admin home: one tile per section of the site.
Mirrors the public site
CV, Stories, Projects, Portfolio and About, with the same icons as the home page.
Counts at a glance
How many CV entries and posts each section holds, drafts included.
About freshness
The date the About page was last saved, or “Not written yet”.
lundqwist.se/Admin
Overview
CV
N entries
Stories
N posts
Projects
N posts
Portfolio
N items
About
Updated YYYY-MM-DD
lundqwist.se · Admin area · 12
/Admin/Cv
CV editor
Every CV entry, one table per section.
Add, edit, delete
“+ Add” on each section; Edit and Delete on every row.
Swedish first
Swedish fields on the left, English on the right; empty English falls back to Swedish.
Order and dates
A sort number, start and end dates, an “ongoing” flag, or free text like “1992 – 1994”.
lundqwist.se/Admin/Cv
Workplaces
+ Add
1
Edit
2
Edit
3
Edit
Courses
+ Add
1
Edit
lundqwist.se · Admin area · 13
/Admin/Posts?category=…
Post editor
Write and publish stories, projects and portfolio items.
Markdown made easy
A formatting toolbar, a live preview and a short help card.
Image library
Upload pictures, drop them into the text, and pick one as the cover.
Publish when ready
Choose SE or EN and a date; a post stays a private draft until “Published” is ticked.
…/Admin/Posts/Edit/7
SE
EN
Published
Title
Text
B
I
H2 “ ” • Link Preview
Image library
lundqwist.se · Admin area · 14
/Admin/About
About editor
One page of text, in two languages side by side.
English left, Swedish right
A heading and text for each; empty Swedish falls back to English.
Same tools as posts
Markdown toolbar, live preview and the image library, without a cover.
Save, then look
A “View page” button jumps straight to the public /About page.
lundqwist.se/Admin/About
English
Svenska
Save
View page
lundqwist.se · Admin area · 15
/Admin/Account/ChangePassword
Change password
Keep the only key to the admin area fresh.
Prove it first
The current password must be right before a new one is accepted.
Long and typed twice
At least 12 characters, confirmed in a second field to catch typos.
Never stored as text
Only a secure hash is saved. Then: “Your password has been changed.”
…/Account/ChangePassword
Change password
Current password
New password
Confirm new password
Save
lundqwist.se · Admin area · 16
Under the hood
ASP.NET Core 8 MVC
Controllers and Razor views build every page.
EF Core
Reads and writes the database in plain C#.
MariaDB
Stores the CV, posts, About text and images.
Helper address
What it does
/media/{id}
Serves an uploaded image at full size
/media/{id}/thumb
Serves the small thumbnail used on cards
/Language/Set
Saves SV or EN in a cookie, then goes back
/Home/Error
Friendly error page with a request id for the logs
Not linked anywhere: Views/Home/Privacy.cshtml is a leftover template page with no route. · 17