288 lines
7.6 KiB
JSON
288 lines
7.6 KiB
JSON
{
|
|
"project": {
|
|
"name": "todo-super",
|
|
"version": "0.1.0",
|
|
"description": "A complete earn-to-play app",
|
|
"tech_stack": {
|
|
"framework": "Next.js 16",
|
|
"language": "TypeScript",
|
|
"styling": "Tailwind CSS 4",
|
|
"runtime": "React 19"
|
|
}
|
|
},
|
|
"state": {
|
|
"current_phase": "IMPLEMENTED",
|
|
"last_updated": "2025-12-18"
|
|
},
|
|
"entities": {
|
|
"data_models": [
|
|
{
|
|
"id": "model_user",
|
|
"name": "User",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/lib/db/schema/user.ts"
|
|
},
|
|
{
|
|
"id": "model_points",
|
|
"name": "Points",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/lib/db/schema/points.ts"
|
|
},
|
|
{
|
|
"id": "model_task",
|
|
"name": "Task",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/lib/db/schema/task.ts"
|
|
},
|
|
{
|
|
"id": "model_user_task",
|
|
"name": "UserTask",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/lib/db/schema/user_task.ts"
|
|
},
|
|
{
|
|
"id": "model_badge",
|
|
"name": "Badge",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/lib/db/schema/badge.ts"
|
|
},
|
|
{
|
|
"id": "model_user_badge",
|
|
"name": "UserBadge",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/lib/db/schema/user_badge.ts"
|
|
},
|
|
{
|
|
"id": "model_quiz",
|
|
"name": "Quiz",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/lib/db/schema/quiz.ts"
|
|
},
|
|
{
|
|
"id": "model_referral",
|
|
"name": "Referral",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/lib/db/schema/referral.ts"
|
|
}
|
|
],
|
|
"api_endpoints": [
|
|
{
|
|
"id": "api_auth_register",
|
|
"path": "/api/auth/register",
|
|
"method": "POST",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/api/auth/register/route.ts"
|
|
},
|
|
{
|
|
"id": "api_auth_login",
|
|
"path": "/api/auth/login",
|
|
"method": "POST",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/api/auth/login/route.ts"
|
|
},
|
|
{
|
|
"id": "api_auth_me",
|
|
"path": "/api/auth/me",
|
|
"method": "GET",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/api/auth/me/route.ts"
|
|
},
|
|
{
|
|
"id": "api_users_points",
|
|
"path": "/api/users/me/points",
|
|
"method": "GET",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/api/users/me/points/route.ts"
|
|
},
|
|
{
|
|
"id": "api_users_badges",
|
|
"path": "/api/users/me/badges",
|
|
"method": "GET",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/api/users/me/badges/route.ts"
|
|
},
|
|
{
|
|
"id": "api_tasks_list",
|
|
"path": "/api/tasks",
|
|
"method": "GET",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/api/tasks/route.ts"
|
|
},
|
|
{
|
|
"id": "api_tasks_checkin",
|
|
"path": "/api/tasks/checkin",
|
|
"method": "POST",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/api/tasks/checkin/route.ts"
|
|
},
|
|
{
|
|
"id": "api_tasks_complete",
|
|
"path": "/api/tasks/:id/complete",
|
|
"method": "POST",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/api/tasks/[id]/complete/route.ts"
|
|
},
|
|
{
|
|
"id": "api_quizzes_get",
|
|
"path": "/api/quizzes/:taskId",
|
|
"method": "GET",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/api/quizzes/[taskId]/route.ts"
|
|
},
|
|
{
|
|
"id": "api_quizzes_submit",
|
|
"path": "/api/quizzes/:taskId/submit",
|
|
"method": "POST",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/api/quizzes/[taskId]/submit/route.ts"
|
|
},
|
|
{
|
|
"id": "api_leaderboard",
|
|
"path": "/api/leaderboard",
|
|
"method": "GET",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/api/leaderboard/route.ts"
|
|
},
|
|
{
|
|
"id": "api_referrals_create",
|
|
"path": "/api/referrals",
|
|
"method": "POST",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/api/referrals/route.ts"
|
|
},
|
|
{
|
|
"id": "api_referrals_claim",
|
|
"path": "/api/referrals/claim",
|
|
"method": "POST",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/api/referrals/claim/route.ts"
|
|
}
|
|
],
|
|
"pages": [
|
|
{
|
|
"id": "page_login",
|
|
"name": "Login Page",
|
|
"route": "/login",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/login/page.tsx"
|
|
},
|
|
{
|
|
"id": "page_register",
|
|
"name": "Register Page",
|
|
"route": "/register",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/register/page.tsx"
|
|
},
|
|
{
|
|
"id": "page_dashboard",
|
|
"name": "Dashboard",
|
|
"route": "/",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/page.tsx"
|
|
},
|
|
{
|
|
"id": "page_tasks",
|
|
"name": "Tasks Page",
|
|
"route": "/tasks",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/tasks/page.tsx"
|
|
},
|
|
{
|
|
"id": "page_quiz",
|
|
"name": "Quiz Page",
|
|
"route": "/quiz/[id]",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/quiz/[id]/page.tsx"
|
|
},
|
|
{
|
|
"id": "page_profile",
|
|
"name": "Profile Page",
|
|
"route": "/profile",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/profile/page.tsx"
|
|
},
|
|
{
|
|
"id": "page_leaderboard",
|
|
"name": "Leaderboard Page",
|
|
"route": "/leaderboard",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/leaderboard/page.tsx"
|
|
},
|
|
{
|
|
"id": "page_referral",
|
|
"name": "Referral Page",
|
|
"route": "/referral",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/referral/page.tsx"
|
|
}
|
|
],
|
|
"components": [
|
|
{
|
|
"id": "component_auth_form",
|
|
"name": "AuthForm",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/components/AuthForm.tsx"
|
|
},
|
|
{
|
|
"id": "component_points_display",
|
|
"name": "PointsDisplay",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/components/PointsDisplay.tsx"
|
|
},
|
|
{
|
|
"id": "component_task_card",
|
|
"name": "TaskCard",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/components/TaskCard.tsx"
|
|
},
|
|
{
|
|
"id": "component_task_list",
|
|
"name": "TaskList",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/components/TaskList.tsx"
|
|
},
|
|
{
|
|
"id": "component_quiz_question",
|
|
"name": "QuizQuestion",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/components/QuizQuestion.tsx"
|
|
},
|
|
{
|
|
"id": "component_badge_card",
|
|
"name": "BadgeCard",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/components/BadgeCard.tsx"
|
|
},
|
|
{
|
|
"id": "component_leaderboard_table",
|
|
"name": "LeaderboardTable",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/components/LeaderboardTable.tsx"
|
|
},
|
|
{
|
|
"id": "component_daily_checkin_button",
|
|
"name": "DailyCheckinButton",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/components/DailyCheckinButton.tsx"
|
|
},
|
|
{
|
|
"id": "component_transaction_history",
|
|
"name": "TransactionHistory",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/components/TransactionHistory.tsx"
|
|
},
|
|
{
|
|
"id": "component_navbar",
|
|
"name": "Navbar",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/components/Navbar.tsx"
|
|
},
|
|
{
|
|
"id": "component_dark_theme_layout",
|
|
"name": "DarkThemeLayout",
|
|
"status": "IMPLEMENTED",
|
|
"file_path": "app/components/DarkThemeLayout.tsx"
|
|
}
|
|
]
|
|
}
|
|
} |