How josedelacruz81/ofiempleo works
Ofiempleo is a Spanish-language jobs and services marketplace built on a Next.js app, despite the README describing a generic template. Its main user flow is browsing accepted posts and jobs, viewing a worker profile, and sending or managing service requests; account registration and role-based employee/employer areas support that flow. Admin pages provide moderation and reporting capabilities. The source excerpts show selected routes and storage calls; several feature branches are represented from the file tree and are not fully verified, so uncertain links are omitted.
Main entry points: supabase.ts Supabase data · employee/page.tsx Employee workspace · app/page.tsx Home feed · auth.ts Credentials and session
Components 32
Marketplace discovery
- Home feed
app/page.tsx - Post list
components/PostsList.tsx - Post APIs
app/api/posts/route.ts - Post detail
app/post/[id]/page.tsx - Job search
app/jobs/[oficio]/page.tsx - Search UI
components/SearchBar/index.tsx - Search action
components/actions/searchAction.tsx
Accounts and profiles
- Sign-in and signup
app/auth/page.tsx - Registration API
app/api/auth/signUp/route.ts - Credentials and session
auth.ts - Account verification
app/verification/page.tsx - User profile
components/profile/index.tsx - Profile editing
app/user/editProfile/page.tsx
Service requests
- Employee workspace
app/employee/page.tsx - Worker post form
components/modals/PostModal/cvForm.tsx - Incoming requests
app/employee/components/RequestsList.tsx - Employer requests
app/employer/requests/page.tsx - Contact action
components/buttons/ContactButton.tsx
Administration
- Admin portal
app/admin/layout.tsx - Post moderation
app/admin/posts/[status]/page.tsx - Report review
app/admin/reports/page.tsx - User management
app/admin/users/page.tsx - Admin statistics
app/admin/stats/page.tsx - Admin APIs
app/api/admin/posts/route.ts
Data and shared UI
- Supabase data
lib/supabase.ts - Firebase image storage
lib/firebase.ts - Ratings and comments
components/littleComponents/Rating.tsx - Shared icons
components/icons.tsx - Toast state
components/shadCn/useToast.tsx - Admin service fetches
lib/services.ts
Other components
- Marketplace visitor
- Resend email
Connections 40
- Marketplace visitor → Home feed: browses
- Home feed → Credentials and session: loads session
app/page.tsx - Home feed → Post APIs: fetches posts
app/page.tsx - Home feed → Supabase data: loads jobs
app/page.tsx - Home feed → Post list: renders
app/page.tsx - Post list → Post detail: links posts
- Post APIs → Supabase data: reads and writes
app/api/posts/route.ts - Post APIs → Firebase image storage: uploads images
app/api/posts/route.ts - Post detail → Supabase data: loads post data
app/post/[id]/page.tsx - Job search → Supabase data: queries jobs
app/jobs/[oficio]/page.tsx - Marketplace visitor → Search UI: searches
- Search UI → Search action: uses search
- Marketplace visitor → Sign-in and signup: registers or signs in
- Registration API → Supabase data: creates user
app/api/auth/signUp/route.ts - Registration API → Resend email: sends verification
app/api/auth/signUp/route.ts - Credentials and session → Supabase data: checks credentials
auth.ts - Sign-in and signup → Registration API: submits signup
- Account verification → Credentials and session: uses sign-in
- Profile editing → Supabase data: loads profile
app/user/editProfile/page.tsx - Profile editing → User profile: renders editor
- User profile → Ratings and comments: renders ratings
components/profile/index.tsx - Employee workspace → Credentials and session: checks session
app/employee/page.tsx - Employee workspace → Supabase data: checks job requests
app/employee/page.tsx - Employee workspace → Worker post form: renders form
app/employee/page.tsx - Employee workspace → Incoming requests: renders requests
app/employee/page.tsx - Employee workspace → Supabase data: fetches user and requests
app/employee/page.tsx - Contact action → Supabase data: creates request
components/buttons/ContactButton.tsx - Employer requests → Credentials and session: checks session
app/employer/requests/page.tsx - Employer requests → Supabase data: loads requests
app/employer/requests/page.tsx - Admin portal → Post moderation: hosts moderation
- Admin portal → Report review: hosts reports
- Admin portal → User management: hosts users
- Admin portal → Admin statistics: hosts statistics
- Post moderation → Admin APIs: uses post API
- Admin APIs → Supabase data: reads and writes
app/api/admin/posts/route.ts - Admin statistics → Supabase data: queries statistics
app/admin/stats/page.tsx - Admin statistics → Admin service fetches: loads admin data
app/admin/stats/page.tsx - Admin service fetches → Admin APIs: fetches admin endpoints
- Registration API → Shared icons: uses email template
app/api/auth/signUp/route.ts - Post moderation → Toast state: shows feedback