Tillbaka till nelsing.se

myComics logotyp Privat projekt - ej publikt

MyComics

En privat databas som växte långt utanför sin ursprungliga plan

Python · Flask · Privat projekt · Sedan april 2025

myComics började i april 2025 som en väldigt enkel idé: jag behövde ett bättre sätt att hålla koll på vilka serietidningar jag faktiskt ägde.

Problemet var att min samling hade vuxit till den punkt där jag började köpa dubletter och tappa överblicken. Det som först var en ganska kaotisk Excel-lista utvecklades snabbt till något betydligt större. Jag började skissa på databasmodeller, relationer mellan serier, issues, karaktärer och samlingsvolymer, och insåg ganska snabbt att jag ville bygga ett eget system från grunden.

Idag är myComics en privat, egenutvecklad webbapplikation för att katalogisera och hantera min fysiska serietidningssamling.

MyComics startsida, biblioteksöversikt

Startsidan - 943 insamlade issues, 238 volymer och 105 serier.

Applikationen hämtar metadata från Comics.org, håller koll på dubletter, inköp, läsning och betyg, och kan länka vidare till Tradera när något saknas i samlingen. Den hanterar både enskilda issues och större samlingsvolymer som TPB:er och omnibuses. En samlingsvolym kan brytas ner i exakt vilka issues den innehåller, vilket gör att jag alltid kan se var i en serie jag befinner mig och vilket nummer som står på tur.

Fortsätt läsa, pågående serier med omslag

Senast läst och nästa nummer på kö, per serie.

Serier och issues

Varje serie öppnar en grid-vy över alla issues, färgkodade efter om de är lästa, olästa eller saknas. Det gör det enkelt att på en sekund se vilka luckor som finns i samlingen.

Spindelmannen issue-grid 1974-1999

Spindelmannen 1974-1999. Grönt = ägt, rött = saknas.

Inne på varje serie syns senast lästa issue, betyg och datum, och direkt vilket nummer som är nästa på kö.

Spindelmannen, senast läst och nästa på kö

Senast läst, betyg, datum och nästa nummer i tur och ordning.

Serielistan samlar 141 samlingsvolymer - TPB:er och bokserier som samlar story arcs i nytryckta format. Marvel Premier Collection är ett bra exempel: en serie som ger ut must read-story arcs med olika hjältar, Black Panther, Old Man Logan och Planet Hulk. Serierna är sorterbara på antal insamlade, senast köpt och mer. TPB-sidan kopplar ihop volymen med de enskilda issues som ingår, så man alltid vet exakt var man befinner sig i en samling.

Comic Series-lista

Comic Series - 141 samlingsvolymer (TPB:er och bokserier), sorterbara på insamlade, senast köpta och mer.

TPB-detaljsida med kopplade issues

TPB-sida: omslag, beskrivning och alla issues som ingår i volymen.

Karaktärer

En av de roligaste delarna är hur projektet kopplar ihop karaktärer med utgåvor. Det har lett till statistik som jag aldrig planerade att bygga från början, men som jag inte visste att jag ville ha förrän den fanns där. Till exempel kan jag se exakt vilken Marvel-skurk jag, helt omedvetet, har samlat flest serietidningar med.

Karaktärsdatabas, 1 126 karaktärer

1 126 karaktärer länkade till issues, sorterade efter flest förekomster. Kalle Anka toppar med 3 477.

Varje karaktär har en profilsida med beskrivning, vilka serier de uppträder i och vilka de oftast delar panel med.

Spider-Man karaktärssida

Spider-Man, karaktärssida med vanligaste medspelare och samtliga kopplade serier.

Karaktärsnätverket visualiserar alla relationer som ett interaktivt, klickbart nätverk. Fler gemensamma issue-uppträdanden ger fler förbindelser i grafen.

Karaktärsnätverk, Spider-Man i centrum

Karaktärsnätverket, interaktivt, filtrerbart och sökbart. Här med Spider-Man i centrum.

Det är också det som definierar hela projektet. Nästan ingenting var planerat från början.

Varje större funktion har vuxit fram ur ett nytt problem eller en ny idé. Behövde jag mer metadata skapade jag ett verktyg mot Comics.org. Ville jag komplettera information byggde jag integrationer mot Marvels API. Datainmatning blev tidskrävande, så jag skapade ett Chrome-tillägg för att förenkla processen.

Idag består myComics egentligen av fyra separata projekt som samverkar:

  • Själva webbapplikationen
  • Ett verktyg för att hämta och bearbeta data från Comics.org
  • Ett separat verktyg för integration mot Marvel API
  • Ett Chrome-tillägg för snabbare datainmatning

Allt är byggt för hand från grunden.

Statistik

Stats-sidan sätter samlingen i relation till hela databasen, 61 000+ issues och 70 000+ varianter indexerade från Comics.org. Därifrån syns lästakten, köphistorik, betygsfördelning och var i världen tidningarna är utgivna.

Statistiköversikt - global databas mot personlig samling

Global databas mot personlig samling, 61 115 issues indexerade, 943 ägda, snittbetyg 4,05.

Topplista per serie och förlag

Toppar per serie och förlag, samling per decennium.

Systemet håller också koll på varje läst issue som en milstolpe, #50, #100, #150 och så vidare, med exakt vilket issue som markerade steget.

Lästapp-milstolpar

Milstolpar längs vägen, vilket issue som var nummer 50, 100, 200 och så vidare.

Lästakten och samlingens tillväxt syns som grafer. Köpkurvan berättar rätt tydligt precis när Tradera hittades.

Lässtatistik, ackumulerat lästa issues

Lästakt sedan april 2025, 405 issues lästa totalt.

Samlingens tillväxt över tid

Samlingens tillväxt, issues och volymer inregistrerade sedan starten. Brantast från april 2025.

Dubbletter

En separat vy listar allt man har mer än ett exemplar av, grupperat per serie. Användbart när man vill förstå varför hyllan inte räcker till, eller leta efter vad som kan säljas vidare.

Dubblettvy, alla dubbletter per serie

Alla dubbletter samlade per serie. Bra att ha när hyllan börjar svämma över.

Tekniken

Backend är byggd i Python och Flask, med SQLite och SQLAlchemy för databasen. Flask-Migrate och Alembic har varit viktiga delar av utvecklingen eftersom projektet har förändrats så mycket över tid. Att kunna migrera databasen utan att förstöra produktionsdata har gjort det möjligt att fortsätta utveckla strukturen även efter att applikationen fyllts med riktig data.

Frontend bygger på HTML, CSS, JavaScript, Bootstrap och Jinja2.

Projektet använder bland annat:

  • Python + Flask 3.1
  • SQLite
  • SQLAlchemy 2.0
  • Flask-Migrate / Alembic
  • SQLite FTS5 för fulltextsökning
  • Flask-Login och Flask-WTF
  • Bootstrap 5
  • Chart.js
  • Font Awesome
  • Pillow
  • Requests + BeautifulSoup för scraping
  • Tradera API
  • Chrome Extension för datainmatning

Funktionsmässigt har projektet vuxit långt bortom den ursprungliga Excel-listan. Det hanterar bland annat serier, issues, karaktärer, författare, förlag, samlingsvolymer, läsning, läsordning, inköp, lån, försäljning, dubletter, favoriter, statistik, sökning, streckkodsscanning och auktioner.

Ett projekt som växte med mig

Sedan starten i april 2025 har jag lagt omkring 1 000 timmar på myComics.

Det har blivit ett projekt jag haft en nästan brinnande passion för. Jag har byggt om delar flera gånger, putsat på detaljer och ständigt försökt göra systemet bättre. Många funktioner har skrivits om när jag lärt mig nya sätt att lösa samma problem.

Projektet har också blivit ett sätt att testa och lära mig nya tekniker på riktigt. Istället för att bygga små testprojekt har jag kunnat använda nya kunskaper direkt i något jag faktiskt använder varje vecka.

Under de mest intensiva perioderna räckte inte timmarna på dygnet till. Jag började gå upp tidigare på morgonen för att hinna programmera innan jobbet, och fortsatte sedan när jag kom hem.

Det är kanske därför myComics betyder mer för mig än bara ett programmeringsprojekt.

Det började som två hobbies som råkade mötas: mitt intresse för serietidningar och mitt intresse för programmering. Men någonstans på vägen blev det ett eget stort projekt, format helt efter mina egna behov.

Projektet är fortfarande privat och stängt för allmänheten. Det är byggt för mig och min samling.

Och det är kanske just därför det har kunnat växa så organiskt.

Från en enkel lista över vilka serietidningar jag ägde, till en databasdriven webbapplikation med hundratals commits, över 150 templates, ett stort antal Blueprints och flera externa verktyg som tillsammans löser ett problem jag från början bara försökte hålla reda på i Excel.

Det blev ungefär 1 000 timmar.

Jag ångrar ingen av dem.

Det här projektet är inte publikt. Det finns ingen öppen URL att besöka. MyComics är ett privat verktyg byggt uteslutande för eget bruk.