go-doc/data/docs/go-guess.md
2026-10-07 15:05:48 +02:00

8.1 KiB

go-guess

Recruitment workspace for interviewers to define job profiles and a reusable question library, manage participants, extract known traits from uploaded CVs, invite candidates who match at least 60% of a posting's labels and skills, and run timed assessments followed by collaborative interviews.

Module github.com/danyel/go-guess/backend · go 1.27.1 · 37 Go files
Endpoints 48 endpoints
Components 1 component directory
Tests 65 in 13 files
Go lines 7331 lines

Everything between the generated markers is rewritten by every sync. Notes written outside the markers are kept.

For Users

What this application does

Recruitment workspace for interviewers to define job profiles and a reusable question library, manage participants, extract known traits from uploaded CVs, invite candidates who match at least 60% of a posting's labels and skills, and run timed assessments followed by collaborative interviews.

The project ships its own README at README.md, which is the long form of this page. The three audience tabs split the same facts three ways so you only read the part that concerns you.

Reading this in go-doc

Open the page and pick the tab that matches you:

  • User — you use the finished application. This section is all you need.
  • Operator — you run it. Configuration, ports and deployment notes are under that tab.
  • Developer — you integrate with it or change it. The API and layout tables are under that tab.

The feedback panel stores a note per audience, tagged with your badge, so operators and developers can see which audience raised it.

Where the original documentation lives

This project already carries 5 Markdown documents. They stay in the project repository: this page points at them instead of copying them, so there is always exactly one copy of the truth.

Document Size
.github/copilot-instructions.md 6859 bytes
README.md 16487 bytes
deploy/helm/go-guess/README.md 11878 bytes
deploy/nginx/README.md 2385 bytes
frontend/README.md 8725 bytes

For Operators

Running it locally

The root Makefile defines 3 targets:

  • make docker
  • make docker-push
  • make docker-run

Local containers

The compose file defines these services:

Service Image Published ports
db postgres:18-alpine internal only
rabbitmq rabbitmq:4-alpine internal only
app built locally internal only
bdd built locally internal only
db postgres:18-alpine internal only
rabbitmq rabbitmq:4-management-alpine internal only
api nexus.urpi.be/docker-hosted/go-guess-api:0.0.1 internal only
web nexus.urpi.be/docker-hosted/go-guess-web:0.0.1 internal only

Image

Dockerfile builds from node:26-alpine, golang:1.27.1-alpine, alpine:3.22 in stages: frontend, backend, tools and exposes 8080.

Configuration

Every environment variable found in the source or in a .env file:

Variable Example Found in
APP_ENV — source
DATABASE_URL — source
GO_LOOSE_BASE_URL — source
GO_LOOSE_CA_FILE — source
JWT_SECRET — source

Network surface

Ports referenced across the project: 5432, 8080.

Deployment artefacts

Helm 1 chart found:

  • deploy/helm/go-guess

Operations documentation that already exists

Read these in place rather than duplicating them here:

  • deploy/helm/go-guess/README.md — Go Guess Helm chart
  • deploy/nginx/README.md — Dedicated-server reverse proxy

For Developers

Module layout

  • backend/go.mod — module github.com/danyel/go-guess/backend, go 1.27.1, 13 direct and 58 indirect dependencies

HTTP API

Every route registration found in the source:

Method Path Handler
GET /api/auth/callback CompleteExternalLogin
GET /api/auth/login BeginExternalLogin
POST /api/auth/login Login
GET /api/auth/logout ExternalLogout
POST /api/auth/logout ExternalLogout
GET /api/auth/session ExternalSession
GET /api/health Health
GET /api/interviews/{token} GetInterview
POST /api/interviews/{token}/accept AcceptInterview
PUT /api/interviews/{token}/answers/{questionId} SaveAnswer
POST /api/interviews/{token}/finish FinishInterview
GET /api/invitations ListInbox
PATCH /api/invitations/{id} UpdateInbox
GET /api/jobs ListJobs
POST /api/jobs CreateJob
GET /api/jobs/{id} GetJob
PATCH /api/jobs/{id} UpdateJob
GET /api/jobs/{id}/candidates Candidates
GET /api/jobs/{id}/interviews ListScheduledInterviews
POST /api/jobs/{id}/interviews CreateScheduledInterview
GET /api/jobs/{id}/invitations ListInvitations
POST /api/jobs/{id}/invitations CreateInvitation
GET /api/jobs/{id}/invitations/{invitationId} ReviewInvitation
PATCH /api/jobs/{id}/invitations/{invitationId}/outcome SetInvitationOutcome
DELETE /api/jobs/{id}/questions/{questionId} DetachQuestion
POST /api/jobs/{id}/questions/{questionId} AttachQuestion
GET /api/openapi.json ServeHTTP
GET /api/participant-meetings/{token} GetParticipantMeeting
GET /api/participant-meetings/{token}/events ParticipantMeetingEvents
GET /api/participants ListParticipants
POST /api/participants CreateParticipant
GET /api/participants/{id} GetParticipant
GET /api/participants/{id}/cv ParticipantCV
PUT /api/participants/{id}/cv UpdateParticipantCV
GET /api/participants/{id}/photo ParticipantPhoto
GET /api/questions ListQuestions
POST /api/questions CreateQuestion
PATCH /api/questions/{id} SetQuestionDeprecated
PUT /api/questions/{id} UpdateQuestion
GET /api/schedule ListCalendar
GET /api/scheduled-interviews/{id} GetScheduledInterview
PATCH /api/scheduled-interviews/{id}/document UpdateScheduledInterviewDocument
GET /api/scheduled-interviews/{id}/events InterviewEvents
GET /api/scheduled-interviews/{id}/notes ListInterviewNotes
POST /api/scheduled-interviews/{id}/notes CreateInterviewNote
PATCH /api/scheduled-interviews/{id}/status UpdateScheduledInterviewStatus
GET /api/users ListUsers
POST /api/users CreateUser

Direct dependencies

  • github.com/danyel/go-loose v0.0.0-20261005194805-49ab89ae46fd
  • github.com/go-chi/chi/v5 v5.2.3
  • github.com/golang-jwt/jwt/v5 v5.3.0
  • github.com/google/uuid v1.6.0
  • github.com/jackc/pgx/v5 v5.11.0
  • github.com/ledongthuc/pdf v0.0.0-20260907135840-6c8c28e0e8a0
  • github.com/pressly/goose/v3 v3.26.0
  • github.com/rabbitmq/amqp091-go v1.15.0
  • github.com/testcontainers/testcontainers-go v0.44.0
  • github.com/testcontainers/testcontainers-go/modules/postgres v0.44.0
  • golang.org/x/crypto v0.54.0
  • gorm.io/driver/postgres v1.6.0
  • gorm.io/gorm v1.31.0

Directory map

Directory Files Lines Likely purpose
frontend/ 93 7311 frontend assets
backend/ 50 114904 unknown — inspect directly
deploy/ 28 135 deployment manifests
bdd/ 10 253 tests
docker/ 2 80 operational tooling
scripts/ 1 28 operational tooling

Languages

  • Go — 37 files, 7331 lines
  • TypeScript — 74 files, 7207 lines
  • JSON — 8 files, 5116 lines
  • CSS — 1 file, 2983 lines
  • YAML — 28 files, 2740 lines
  • Markdown — 5 files, 984 lines
  • SQL — 10 files, 388 lines
  • JavaScript — 6 files, 185 lines
  • Templates — 1 file, 109 lines
  • conf — 3 files, 88 lines