How mh06a/portfolio-website works
This is a Supabase-backed portfolio administration data layer: administrators can authenticate and manage profile, skills, projects, experience, education, and certificates, with shared asset storage. The apparent feature workflow is use cases through repositories to Supabase data sources; repository-to-data-source delegation is visible in the excerpts, but use-case wiring is not. The README is empty and the entry point provides no workflow detail, so those links are left unverified rather than presented as established calls.
Main entry points: project.repository.impl.js Project repository · certificate.repository.impl.js Certificate repository · domain/usecases Experience use cases · domain/usecases Education use cases
Components 30
Admin authentication
- Auth use cases
src/features/auth/domain/usecases - Auth repository
src/features/auth/data/repositories/auth.repository.impl.js - Auth data source
src/features/auth/data/datasources/supabase-auth.datasource.js
Portfolio content
- Profile use cases
src/features/profile/domain/usecases - Profile repository
src/features/profile/data/repositories/profile.repository.impl.js - Profile data source
src/features/profile/data/datasources/supabase-profile.datasource.js - Skills use cases
src/features/skills/domain/usecases - Skills repository
src/features/skills/data/repositories/skill.repository.impl.js - Skills data source
src/features/skills/data/datasources/supabase-skill.datasource.js - Project use cases
src/features/projects/domain/usecases - Project repository
src/features/projects/data/repositories/project.repository.impl.js - Project data source
src/features/projects/data/datasources/supabase-project.datasource.js - Project model
src/features/projects/domain/models/project.model.js - Certificate use cases
src/features/certificates/domain/usecases - Certificate repository
src/features/certificates/data/repositories/certificate.repository.impl.js - Certificate data source
src/features/certificates/data/datasources/supabase-certificate.datasource.js - Certificate model
src/features/certificates/domain/models/certificate.model.js
Career history
- Experience use cases
src/features/experience/domain/usecases - Experience repository
src/features/experience/data/repositories/experience.repository.impl.js - Experience data source
src/features/experience/data/datasources/supabase-experience.datasource.js - Experience model
src/features/experience/domain/models/experience.model.js - Education use cases
src/features/education/domain/usecases - Education repository
src/features/education/data/repositories/education.repository.impl.js - Education data source
src/features/education/data/datasources/supabase-education.datasource.js - Education model
src/features/education/domain/models/education.model.js
Asset storage
- Storage repository
src/shared/data/repositories/storage.repository.impl.js - Storage data source
src/shared/data/datasources/supabase-storage.datasource.js
Supabase platform
- Supabase client
src/config/supabase/supabase-client.js
Other components
- Administrator
- Supabase service
Connections 28
- Administrator → Auth use cases: initiates
- Administrator → Profile use cases: manages
- Administrator → Skills use cases: manages
- Administrator → Project use cases: manages
- Administrator → Certificate use cases: manages
- Administrator → Experience use cases: manages
- Administrator → Education use cases: manages
- Auth use cases → Auth repository: uses
- Auth repository → Auth data source: delegates to
src/features/auth/data/repositories/auth.repository.impl.js - Profile use cases → Profile repository: uses
- Profile repository → Profile data source: delegates to
src/features/profile/data/repositories/profile.repository.impl.js - Skills use cases → Skills repository: uses
- Skills repository → Skills data source: delegates to
src/features/skills/data/repositories/skill.repository.impl.js - Project use cases → Project repository: uses
- Project repository → Project data source: delegates to
src/features/projects/data/repositories/project.repository.impl.js - Project repository → Project model: creates
src/features/projects/data/repositories/project.repository.impl.js - Certificate use cases → Certificate repository: uses
- Certificate repository → Certificate data source: delegates to
src/features/certificates/data/repositories/certificate.repository.impl.js - Certificate repository → Certificate model: creates
src/features/certificates/data/repositories/certificate.repository.impl.js - Experience use cases → Experience repository: uses
- Experience repository → Experience data source: delegates to
src/features/experience/data/repositories/experience.repository.impl.js - Experience use cases → Experience model: manages
- Education use cases → Education repository: uses
- Education repository → Education data source: delegates to
src/features/education/data/repositories/education.repository.impl.js - Education use cases → Education model: manages
- Storage repository → Storage data source: delegates to
src/shared/data/repositories/storage.repository.impl.js - Storage data source → Supabase client: uses client
src/shared/data/datasources/supabase-storage.datasource.js - Supabase client → Supabase service: connects to
src/config/supabase/supabase-client.js