Phase 4: Community submissions + moderation queue
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 70/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- supabase, typescript
- Área
- authentication, database, full-stack
Línea de trabajo
Start with src/app/submit/actions.ts and src/app/submit/submit-form.tsx, then inspect isUrlListed() in src/lib/resources.ts and the existing /submit submission view. Confirm the action validates the required fields, rejects duplicate URLs, records the signed-in user with approved=false, and refreshes the user's status view. Done means a submission appears under review and remains available to the admin queue.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Description
Implement community submissions and moderation queue as specified in PRD §8.10. This is a P2 requirement for Phase 4.
Acceptance Criteria (from PRD §8.10)
- Logged-in users can submit a resource (
approved = falseuntil admin review) - Design the
resourcestable'ssubmittedBy/approvedcolumns now (already in schema)
Current State
- Database schema already has
submittedBy(text) andapproved(boolean, default true) columns on resources /submitpage exists with Supabase Auth sign-in/submitpage hasSubmitFormcomponent but it's not fully wired to backend- Admin dashboard already has review queue for
approved = falseresources - Admin can approve/reject submissions
What's Missing
- SubmitForm backend: The form submission action needs to insert into resources with
approved = false - User submission tracking: Show user their submissions with status (already partially in
/submitpage) - Submission validation: Validate URL, required fields, duplicate detection
- Email notification: Notify admin of new submission (optional, Phase 5)
Implementation Plan
- Complete SubmitForm action:
src/app/submit/actions.ts- insert resource withapproved = false,submittedBy = user.id- Validate form data (Zod schema)
- Check for duplicate URL
- Redirect to
/submitwith success message
- Enhance user submission view:
/submitpage already shows user's submissions with status- Ensure real-time updates after submission
- Admin review queue: Already working in
/admindashboard - Duplicate detection: Use existing
isUrlListed()insrc/lib/resources.ts
Files to Modify
src/app/submit/actions.ts- complete the submission Server Actionsrc/app/submit/submit-form.tsx- ensure proper form handlingsrc/lib/resources.ts- verifyisUrlListed()works for duplicate check
Database Schema (already exists)
resources: {
submittedBy: text('submitted_by'), // user id
approved: boolean('approved').notNull().default(true), // false for submissions
// ... other fields
}
UX Notes
- Submission form: name, URL, category, cost type, description (required), tags/region/deadline (optional)
- After submit: "Thanks! Your submission is under review." + show in user's submission list
- Admin sees in review queue with "Approve" / "Reject" / "Edit before approving"
- Lenguaje dominante
- TypeScript
- Estrellas
- 1
- Forks
- 6
- Merge medio
- 11 h 16 min
- PR fusionados (30 d)
- 16
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Your-Voldemort/StudentStack
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
Your-Voldemort/StudentStack#42 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
Your-Voldemort/StudentStack#41 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
Your-Voldemort/StudentStack#40 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 45/100
Your-Voldemort/StudentStack#38 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
Your-Voldemort/StudentStack#37 ·
Los mantenedores suelen responder en 1 día
Todos los issues de Your-Voldemort/StudentStack
Issues similares
-
[bug] diagnostics.dumpBody:Buffer 形态请求(透传 lane)跳过 dumps/ 落盘,仅留 raw/-unknown-Posiblemente ocupada @ranxianglei la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
ranxianglei/billion-context#2421 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
platformatic/mcp#216 ·
Los mantenedores suelen responder en 1 día
-
pending triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
nuxt/test-utils#1842 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
MoonshotAI/kimi-code#4146 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
farbenmeer/tapi#531 ·