Collectum is a private full-stack product I am building around a simple idea: use AI to identify real-world subjects from images and turn the confirmed results into a personal collection. The product direction is close to a "real-world Pokédex", but adapted to a broader set of topics such as animals, insects, plants, monuments and future custom categories. The app is mobile-first. A user selects a topic, captures or uploads an image, sends it for AI analysis, reviews the result, and can save the completed analysis as a collection item. The long-term experience is collection-driven: browse discoveries by category, inspect details, search or filter items, and build a personal archive of things found in the real world. The repository is private, so this article intentionally avoids exposing source code, private endpoints, deployment internals, secrets, or any implementation detail that would put the project at risk. The goal is to show the engineering scope, architecture and testing discipline behind the project without turning a private product into an open blueprint. https://manuel-samuel-alfaro-sierra.porfolio.dkt-mlk.es/articles/collectum-architecture.html
  • Go 61.9%
  • TypeScript 36%
  • CSS 0.8%
  • JavaScript 0.6%
  • Shell 0.5%
  • Other 0.1%
Find a file
Manuel Samuel Alfaro Sierra fd339d8df3
All checks were successful
CI / Backend Unit And Vet (push) Successful in 1m23s
CI / Frontend Jest (push) Successful in 1m49s
CI / Backend Integration (push) Successful in 2m38s
[FEAT] Updated Collectum video
2026-07-16 13:53:33 +02:00
.forgejo/workflows [FEAT] Another more (juas) Ajusted ci.yml 2026-06-16 16:10:53 +02:00
.husky [FEAT] Create the basic arch 2026-04-26 12:24:11 +02:00
.pnpm-home/.tools/pnpm [FEAT] Added collection detail page. Added back gesture. Added ZoomImage modal. 2026-05-19 12:35:26 +02:00
.tmp/gocache [FEAT] Added: filters on lists attempts and collection. Finished attempt curd 2026-06-26 18:20:04 +02:00
assets [FEAT] Ajusted plants, animals, insects promps to get more human descriptions. The same with monuments but with aditional ajustement becouse it has a diferent AI contract 2026-06-29 13:26:55 +02:00
backend [FEAT] Updated Collectum video 2026-07-16 13:53:33 +02:00
deploy [FEAT] Improvements on deploy script and setted openapiReqCli image in compose intead of sources 2026-07-06 17:35:05 +02:00
frontend [FEAT] Added endpoint to delete collection item, and added frontend option. Added share action on attempt and collection detail 2026-07-08 17:47:46 +02:00
packages [FEAT] Create the basic arch 2026-04-26 12:24:11 +02:00
samples [FEAT] Create the basic arch 2026-04-26 12:24:11 +02:00
scripts [FEAT] Improvements on deploy script and setted openapiReqCli image in compose intead of sources 2026-07-06 17:35:05 +02:00
.dockerignore [FEAT] Added dockerignore to avoid docker build frontend copy node_modules 2026-07-07 12:50:06 +02:00
.editorconfig [FEAT] Added modules: images, ai, ai_logs and their test 2026-04-29 18:03:33 +02:00
.gitignore [FEAT] Fixed pool analysis problem with run multiples analysis quickly 2026-07-01 17:59:14 +02:00
.prettierrc.json [FEAT] Added: filters on lists attempts and collection. Finished attempt curd 2026-06-26 18:20:04 +02:00
AGENT.md [FEAT] Create the basic arch 2026-04-26 12:24:11 +02:00
AGENTS.md [FEAT] Create the basic arch 2026-04-26 12:24:11 +02:00
collectum_architecture_readme.md [FEAT] Create the basic arch 2026-04-26 12:24:11 +02:00
collectum_product_readme.md [FEAT] Create the basic arch 2026-04-26 12:24:11 +02:00
package.json [FEAT] Added admin role. And created a new dashboar in home-admin to watch the system status 2026-07-02 16:32:03 +02:00
pnpm-lock.yaml [FEAT] Added endpoint to delete collection item, and added frontend option. Added share action on attempt and collection detail 2026-07-08 17:47:46 +02:00
pnpm-workspace.yaml [FEAT] Added admin role. And created a new dashboar in home-admin to watch the system status 2026-07-02 16:32:03 +02:00
README.md [FEAT] Updated Collectum video 2026-07-16 13:53:33 +02:00
SUMARIZE.md [FEAT] First version of Collectum. Prototype, images and documentation 2026-04-25 19:13:29 +02:00
Taskfile.yml [FEAT] Added admin role. And created a new dashboar in home-admin to watch the system status 2026-07-02 16:32:03 +02:00
TODO.md [FEAT] Updated Collectum video 2026-07-16 13:53:33 +02:00
turbo.json [FEAT] Upgraded turborepo 2026-06-20 14:02:40 +02:00

Collectum logo panel

Collectum

CI

Collectum is a mobile-first app for identifying animals, insects, and plants from images using AI, then turning confirmed results into a personal collection.

This repository is now prepared as a lightweight monorepo. It intentionally contains structure and manifests only; business logic, endpoints, migrations, and frontend implementation will be added later.

Demo Video

Watch the demo

Auth Screens

Welcome Login
Collectum welcome screen Collectum login screen

Repository Layout

  • backend/: Go backend prepared for chi, PostgreSQL, Qwen integration, image storage, credits, collection items, and async workers.
  • frontend/: future React Native + Expo workspace.
  • deploy/: deployment and local development manifests.
  • assets/: project assets.
  • samples/: future sample inputs and fixtures.
  • scripts/: future repository scripts.
  • packages/: future shared packages.
  • prototypes/: existing prototype material used before the production structure.

Tooling

  • Package manager: pnpm
  • Task runner: Task + Turbo
  • Git hooks: Husky
  • Backend module: git.dkt-mlk.es/dokoto/collectum/backend

Root scripts:

pnpm dev
pnpm build
pnpm test
pnpm lint
pnpm format
pnpm task:list

Frontend mobile release:

cd frontend
pnpm build:play-store:release

Backend

The backend is organized by domains and layers under backend/internal/.

  • analysis: reviewable AI analysis attempts.
  • collection: saved entries created from completed analysis attempts.
  • credits: credit checks and consumption before AI calls.
  • ai: Qwen integration boundary.
  • storage: image storage abstraction.
  • workers: asynchronous AI analysis processing.

The backend now includes domain handlers, services, repositories, migrations, and OpenAPI generation for auth, users, images, analysis, credits, prompts, AI logs, and collection items.

Frontend

The frontend workspace is reserved for React Native + Expo:

  • frontend/apps/mobile/
  • frontend/packages/

Expo is intentionally not installed yet.

Safety

Do not read, print, or modify real .env files. Only safe templates such as .env.example or .env.sample may be created or edited. Never commit real secrets.