How tulio8998/linketinder-project works
Linketinder is a candidate–employer matching product with a Vanilla TypeScript browser interface and a Groovy backend. The documented product workflow covers account creation and sign-in, profile and vacancy management, skill-based discovery, likes or passes, mutual matches, and match-gated identity plus skill analytics. The supplied frontend excerpt shows browser-local storage; the README separately describes a PostgreSQL-backed backend exposed through a terminal CLI. No frontend-to-backend connection is evidenced, so these are shown as separate runtime paths. Some frontend wiring and backend implementations are unsampled.
Main entry points: main.ts App entry · empresa.ts Employer actions · CurtidaService.ts Likes and matches · candidato.ts Candidate actions
Components 24
Browser experience
- App entry
Frontend/src/main.ts
Frontend workflows
- Sign-in and signup
Frontend/src/pages/signIn.ts - Candidate signup
Frontend/src/pages/signUpCandidato.ts - Employer signup
Frontend/src/pages/signUpEmpresa.ts - Candidate dashboard
Frontend/src/pages/candidatoDash.ts - Employer dashboard
Frontend/src/pages/empresaDash.ts - Candidate actions
Frontend/src/components/candidato.ts - Employer actions
Frontend/src/components/empresa.ts - Affinity and history
Frontend/src/ts/services/CurtidaService.ts - Skill analytics
Frontend/src/components/empresa.ts
Backend CLI
- Backend entry
Backend/src/main/groovy/com/zg/linketinder/Main.groovy - Interactive menus
Backend/src/main/groovy/com/zg/linketinder/cli - Domain services
Backend/src/main/groovy/com/zg/linketinder/service - Data access objects
Backend/src/main/groovy/com/zg/linketinder/dao - Domain models
Backend/src/main/groovy/com/zg/linketinder/model
Persistence
- Candidate storage service
Frontend/src/ts/services/CandidatoService.ts - Employer storage service
Frontend/src/ts/services/EmpresaService.ts - Vacancy service
Frontend/src/ts/services/VagaService.ts - Likes and matches
Frontend/src/ts/services/CurtidaService.ts - Browser local storage
- Relational schema
Backend/src/main/groovy/com/zg/linketinder/schema/tables.sql - PostgreSQL
Other components
- Candidate or employer
- CLI user
Connections 32
- Candidate or employer → App entry: uses
- App entry → Sign-in and signup: renders
- App entry → Candidate signup: renders
- App entry → Employer signup: renders
- App entry → Candidate dashboard: renders
- App entry → Employer dashboard: renders
- App entry → Candidate actions: initializes
- App entry → Employer actions: initializes
- App entry → Candidate storage service: initializes
- App entry → Employer storage service: initializes
- App entry → Vacancy service: initializes
- App entry → Likes and matches: initializes
- Candidate actions → Candidate storage service: reads and writes
- Candidate actions → Vacancy service: reads and writes
- Candidate actions → Likes and matches: records choices
- Employer actions → Employer storage service: reads and writes
- Employer actions → Vacancy service: reads and writes
- Employer actions → Candidate storage service: reads
- Employer actions → Likes and matches: records choices
- Likes and matches → Affinity and history: calculates
- Employer actions → Skill analytics: renders
- Candidate storage service → Browser local storage: reads and writes
- Employer storage service → Browser local storage: reads and writes
- Vacancy service → Browser local storage: reads and writes
- Likes and matches → Browser local storage: reads and writes
- CLI user → Backend entry: starts
- Backend entry → Interactive menus: dispatches
- Interactive menus → Domain services: invokes
- Domain services → Data access objects: uses
- Data access objects → PostgreSQL: queries
- Relational schema → PostgreSQL: defines tables
- Domain services → Domain models: uses domain data