Project Detail View Page (Full Lifecycle — View + Submit + Judge + Moderate)
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 25/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 技術スタック
- typescript
- 領域
- api, authorization, full-stack
調査の方向性
Start with the proposed /projects/[id]/page.tsx entry point and the listed components: Header.tsx, Overview.tsx, Team.tsx, Submission.tsx, ScorePanel.tsx, ModerationPanel.tsx, and Timeline.tsx. Trace the existing project APIs and permission handling before planning the lifecycle, scoring, moderation, loading, error, and timeline behavior; done means the stated role-based workflows and test cases are implemented.
索引モデルが issue の本文から書いたものです。
説明
🧠 What are we building?
A complete Project Detail Page that is not just for viewing, but for:
- 📦 Submission (Participant)
- ⭐ Scoring (Judge)
- 🛡️ Moderation (Organizer/Admin)
- 📊 Evaluation tracking
👉 This is the core execution layer of hackathons/events
🎯 Goal
Build a fully functional, role-aware Project Page that:
- shows complete project data
- supports submission flow
- supports judging & scoring
- supports moderation
- handles real-world workflows
🧠 Core Concept
Project Page = View + Actions + Evaluation + Moderation
🏗️ Route
/projects/:projectId
📦 Page Layout
Header (Title + Status + Actions)
---------------------------------
Project Overview
---------------------------------
Team Info
---------------------------------
Submission Details
---------------------------------
Attachments / Links
---------------------------------
Scoring & Feedback (Judge)
---------------------------------
Moderation Panel (Organizer/Admin)
---------------------------------
Activity / Timeline
🔹 1. Header
Show:
-
Project Title
-
Status Badge:
- Draft
- Submitted
- Under Review
- Approved
- Rejected
-
Event Name + Type
-
Action Buttons (role-based)
🔹 2. Project Overview
- Description
- Tech Stack (skills)
- GitHub Repo
- Live Demo URL
🔹 3. Team Section
- Team Name / Solo
- Members list
🔹 4. Submission Details
- Submission Status
- Submitted At
- Last Updated
- Version (draft vs final)
🔹 5. Attachments
- Screenshots
- Docs
- Links
⭐ 6. Scoring System (CRITICAL)
Only for Judges
Scoring UI
Fields:
Innovation (0–10)
Technical Complexity (0–10)
Design / UX (0–10)
Impact (0–10)
Total Score
Auto calculated
Feedback
- text area for judge comments
Submit Score
- button → submit score
API
POST /api/v1/projects/:id/score
Data Model (Example)
Score {
projectId
judgeId
innovation
technical
design
impact
totalScore
feedback
submittedAt
}
Rules
- judge can score only assigned projects
- score editable until deadline
- multiple judges → average score
🧑💻 7. Participant Actions
- Edit Project (only draft)
- Delete Project (only draft)
- Submit Project
Submit Flow
Click Submit
↓
Validation check
↓
Status → submitted
↓
Lock editing
API
POST /api/v1/projects/:id/submit
🏢 8. Organizer Moderation Panel
Actions
- View all submissions
- Approve / Reject project
- Delete inappropriate project
API
POST /api/v1/projects/:id/approve
POST /api/v1/projects/:id/reject
DELETE /api/v1/projects/:id
🛡️ 9. Admin Controls
- Delete project
- Suspend project
- Ban user
📊 10. Score Aggregation
Show:
- average score
- number of judges
- ranking (optional)
avgScore = totalScore / numberOfJudges
📜 11. Activity Timeline
Show events:
- project created
- edited
- submitted
- scored
- approved/rejected
⚙️ API (FULL)
Get Project
GET /api/v1/projects/:id
Submit Project
POST /api/v1/projects/:id/submit
Score Project
POST /api/v1/projects/:id/score
Moderate
POST /api/v1/projects/:id/approve
POST /api/v1/projects/:id/reject
DELETE /api/v1/projects/:id
🔐 Permissions (VERY IMPORTANT)
Participant → own project only
Organizer → community projects
Judge → assigned projects
Admin → full access
🧩 States
Loading
- skeleton
Error
- retry
Not Found
- project not found
Unauthorized
- access denied
🛡️ Edge Cases
- scoring after deadline
- duplicate scoring
- editing after submission
- unauthorized judge access
- project deleted mid-view
🎨 UI Requirements
- clean sections
- clear scoring inputs
- responsive layout
- action buttons visible by role
- status badges
🧪 Test Cases
- participant submit works
- judge scoring works
- multiple judges handled
- organizer moderation works
- admin actions work
- permissions enforced
- timeline updates
📂 File Structure
/projects/[id]
├── page.tsx
├── components/
│ ├── Header.tsx
│ ├── Overview.tsx
│ ├── Team.tsx
│ ├── Submission.tsx
│ ├── ScorePanel.tsx
│ ├── ModerationPanel.tsx
│ └── Timeline.tsx
🚀 Future Enhancements
- live scoring updates
- judge discussion panel
- AI scoring assistance
- leaderboard
✅ Done When
- full project lifecycle handled
- scoring system works
- moderation works
- permissions enforced
- UI responsive
🎯 Priority
🔥 CRITICAL — Core evaluation system
🏁 Final Note
This page is the heart of your platform.
This is where projects are built, judged, and validated.
👉 Build it like a real hackathon system, not just a detail page.
- 主要言語
- TypeScript
- スター
- 7
- フォーク
- 17
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
NexGenStudioDev/CommDesk のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
NexGenStudioDev/CommDesk#140 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
NexGenStudioDev/CommDesk#138 ·
-
[Bug] signup.ts: uploadCommunityLogo is a simulated stub that converts files to data URLs with no size or type validation, sending multi-megabyte base64 strings in the signup payload再び着手できるかも @anshul23102 が 123 日前に担当しましたが、オープン中のプルリクエストはありません。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
NexGenStudioDev/CommDesk#130 · コメント 2 件 ·
-
Input text not visible in authentication forms再び着手できるかも @anshul23102 が 123 日前に担当しましたが、オープン中のプルリクエストはありません。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
NexGenStudioDev/CommDesk#123 · コメント 2 件 ·
-
[UX] Hardcoded window dimensions not DPI-aware — UI broken on high-DPI displays対応中かも @anshul23102 が 93 日前に担当しました。 オープン
NexGenStudioDev/CommDesk#141 · 担当者 1 名 ·
NexGenStudioDev/CommDesk の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
cockpit-project/cockpit-machines#2835 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
cloudflare/kumo#866 ·
メンテナーはふだん 1 日以内に返信
-
area:connector bug
難易度 1/5 1時間未満 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
tester-army/e2e#1015 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
メンテナーはふだん 1 日以内に返信