Creative Projects Crowdfunding Website
Budget: £5,000 – £10,000 GBP
Project Overview
Idea Hub is a web-based platform that allows authenticated users to submit ideas for review, track their status, and showcase approved ideas publicly. The platform includes a secure admin review workflow and enforces strict role-based permissions and data access rules.
The goal is to deliver a production-ready MVP with clean architecture, strong security, and a scalable foundation.
Core Requirements
1. Authentication & Roles
Implement user authentication with:
Signup (name, email, password)
Login / logout
Persistent sessions
Implement a role system with two roles:
user
admin
Roles must be assigned server-side only.
Users must never be able to select or modify their role from the client.
All role checks must be enforced server-side (UI checks alone are insufficient).
2. Authorization & Access Control
Users may only:
View their own ideas
Create new ideas
Edit/delete their own drafts
Users may not:
View or modify other users’ ideas
Approve or reject ideas
Change idea status directly
Admins may:
View all submitted ideas
Approve or reject ideas
Add optional admin feedback notes
All authorization must be enforced server-side with ownership checks to prevent ID-guessing attacks.
3. Idea Submission System
Each idea must include the following fields:
Title (required)
Summary (required, maximum 140 characters)
Description (required)
Category (required, fixed predefined list)
Tags (optional)
Images (optional, up to 6)
Users must be able to:
Save an idea as a draft
Submit an idea for admin review
All validation must occur server-side in addition to any client-side validation.
4. Idea Status Workflow
Ideas must follow a strict status flow:
draft
submitted
approved
rejected
Rules:
Users can transition:
draft → submitted
Admins can transition:
submitted → approved
submitted → rejected
Users cannot directly set or alter status values.
Invalid transitions must be blocked server-side.
5. User Dashboard (“My Ideas”)
Displays only the authenticated user’s ideas
Shows idea status using clear badges or labels
Allows filtering by:
All
Draft
Submitted
Approved
Rejected
Displays admin feedback notes when present
Includes proper loading and empty states
6. Admin Dashboard
(Admin access only)
Displays all submitted ideas
Provides statistics:
Total ideas
Pending (submitted)
Approved
Rejected
Allows admins to:
Review idea details
Approve or reject ideas
Add an optional admin note
All admin actions must be transactional and validated server-side
7. Public Gallery
Displays only approved ideas
Must never expose drafts, submitted, or rejected ideas
Filtering/search by:
Title
Category
Tags
Approved-only filtering must be enforced at the database query level
8. Image Upload System
Allow up to 6 images per idea
Accepted formats:
JPG / JPEG
PNG
WEBP
Enforce maximum file size per image (e.g., 5–10MB)
Images must be stored in object storage (not as database blobs)
Database should store:
Image metadata
Storage path or URL
Enforce ownership checks before allowing uploads
Sanitize filenames and generate unique paths
All upload limits must be enforced server-side.
9. Database & Data Integrity
Required entities:
Users
Ideas
Idea Images
Enforce:
Foreign key relationships
Indexes on frequently queried fields (user_id, status)
Enum or constrained values for idea status
Automatically manage timestamps (created_at, updated_at)
Prevent client-controlled queries that could bypass security
10. Security & Abuse Prevention
Implement basic rate limiting for:
Signup
Login
Idea submission
Enforce request size limits
Prevent exposure of sensitive server errors to the client
Ensure no secrets are exposed client-side
11. UX & Quality Expectations
Responsive design (mobile, tablet, desktop)
Clear loading, success, and error states
Consistent component structure and styling
Clean, maintainable, well-documented code
12. Testing & Verification
The following must be verifiable before delivery:
Non-admin users cannot access admin routes or actions
Users cannot access other users’ ideas via ID manipulation
Public gallery never shows non-approved ideas
Invalid uploads fail safely
Overlong summaries are rejected server-side
Idea Hub is a web-based platform that allows authenticated users to submit ideas for review, track their status, and showcase approved ideas publicly. The platform includes a secure admin review workflow and enforces strict role-based permissions and data access rules.
The goal is to deliver a production-ready MVP with clean architecture, strong security, and a scalable foundation.
Core Requirements
1. Authentication & Roles
Implement user authentication with:
Signup (name, email, password)
Login / logout
Persistent sessions
Implement a role system with two roles:
user
admin
Roles must be assigned server-side only.
Users must never be able to select or modify their role from the client.
All role checks must be enforced server-side (UI checks alone are insufficient).
2. Authorization & Access Control
Users may only:
View their own ideas
Create new ideas
Edit/delete their own drafts
Users may not:
View or modify other users’ ideas
Approve or reject ideas
Change idea status directly
Admins may:
View all submitted ideas
Approve or reject ideas
Add optional admin feedback notes
All authorization must be enforced server-side with ownership checks to prevent ID-guessing attacks.
3. Idea Submission System
Each idea must include the following fields:
Title (required)
Summary (required, maximum 140 characters)
Description (required)
Category (required, fixed predefined list)
Tags (optional)
Images (optional, up to 6)
Users must be able to:
Save an idea as a draft
Submit an idea for admin review
All validation must occur server-side in addition to any client-side validation.
4. Idea Status Workflow
Ideas must follow a strict status flow:
draft
submitted
approved
rejected
Rules:
Users can transition:
draft → submitted
Admins can transition:
submitted → approved
submitted → rejected
Users cannot directly set or alter status values.
Invalid transitions must be blocked server-side.
5. User Dashboard (“My Ideas”)
Displays only the authenticated user’s ideas
Shows idea status using clear badges or labels
Allows filtering by:
All
Draft
Submitted
Approved
Rejected
Displays admin feedback notes when present
Includes proper loading and empty states
6. Admin Dashboard
(Admin access only)
Displays all submitted ideas
Provides statistics:
Total ideas
Pending (submitted)
Approved
Rejected
Allows admins to:
Review idea details
Approve or reject ideas
Add an optional admin note
All admin actions must be transactional and validated server-side
7. Public Gallery
Displays only approved ideas
Must never expose drafts, submitted, or rejected ideas
Filtering/search by:
Title
Category
Tags
Approved-only filtering must be enforced at the database query level
8. Image Upload System
Allow up to 6 images per idea
Accepted formats:
JPG / JPEG
PNG
WEBP
Enforce maximum file size per image (e.g., 5–10MB)
Images must be stored in object storage (not as database blobs)
Database should store:
Image metadata
Storage path or URL
Enforce ownership checks before allowing uploads
Sanitize filenames and generate unique paths
All upload limits must be enforced server-side.
9. Database & Data Integrity
Required entities:
Users
Ideas
Idea Images
Enforce:
Foreign key relationships
Indexes on frequently queried fields (user_id, status)
Enum or constrained values for idea status
Automatically manage timestamps (created_at, updated_at)
Prevent client-controlled queries that could bypass security
10. Security & Abuse Prevention
Implement basic rate limiting for:
Signup
Login
Idea submission
Enforce request size limits
Prevent exposure of sensitive server errors to the client
Ensure no secrets are exposed client-side
11. UX & Quality Expectations
Responsive design (mobile, tablet, desktop)
Clear loading, success, and error states
Consistent component structure and styling
Clean, maintainable, well-documented code
12. Testing & Verification
The following must be verifiable before delivery:
Non-admin users cannot access admin routes or actions
Users cannot access other users’ ideas via ID manipulation
Public gallery never shows non-approved ideas
Invalid uploads fail safely
Overlong summaries are rejected server-side
Related categories:
PHP
Website Design
Graphic Design
HTML
Web Development
Backend Development
Database Management
API Development