DevShowcase is a premium, full-stack community project showcase platform. It provides a centralized hub for developers to discover, share, and discuss innovative open-source projects.
- 🌐 Project Discovery: Advanced search and filtering system. Users can explore projects by categories, sort by relevance, and find inspiration instantly.
- 📝 Seamless Submissions: A streamlined multi-step project submission flow that allows developers to showcase their work with GitHub integration and live demos.
- 🛡️ Robust Admin Portal: A dedicated dashboard for moderators to review, approve, or reject projects, ensuring high-quality community standards.
- 🔐 Enterprise-Grade Auth: Secure authentication powered by NextAuth.js v5, supporting roles (Admin/User) and protected server-side actions.
- 💬 Community Engagement: Integrated voting and commenting system (Architecture ready) to foster developer collaboration.
- 🌓 Dynamic UI/UX: Modern, glassmorphic design system with full Dark/Light mode support and optimized mobile responsiveness.
- Code Quality Control: Pre-commit hooks via Husky and lint-staged to ensure code consistency and prevent linting errors.
- Automated Formatting: Standardized code style using Prettier with automatic import sorting and Tailwind class sorting.
- Optimized Performance: Leveraged React Suspense and Streaming for faster page loads and smooth skeleton states.
- Seamless UX: Implemented robust Pagination for project discovery and admin management to handle large datasets efficiently.
- Automated CI/CD: Clean code and successful builds are enforced via GitHub Actions, covering linting, formatting, and production build verification.
- Framework: Next.js 16 (App Router)
- Styling: Tailwind CSS 4
- UI Components: Shadcn UI & Radix UI
- State/Forms: React Hook Form & Zod
- Icons: Lucide React
- Database: PostgreSQL
- ORM: Prisma
- Authentication: NextAuth.js v5
- Node.js (v20 or higher)
- PostgreSQL Database
- Bun or NPM
# Clone the repository
git clone https://github.com/JaySavani/buildlog-HOE-Assignment.git
# Install dependencies
bun installCreate a .env file in the root directory:
# Database
DATABASE_URL=""
# NextAuth (Auth.js)
# Generate a secret: openssl rand -base64 32
AUTH_SECRET=""
NEXTAUTH_URL="http://localhost:3000"# Push schema to database
npx prisma db push
# (Optional) Seed initial data
npx prisma db seedbun devTo test the platform's features, you can use the following pre-seeded account:
- Admin Account:
- Email:
admin@gmail.com - Password:
Admin123 - Role: Full access to the Admin Dashboard (approve/reject projects).
- Email:
src/
├── app/ # Next.js App Router (Pages & API)
├── actions/ # Type-safe Server Actions (Auth, Projects)
├── components/ # Reusable UI & Layout Components
│ ├── admin/ # Admin-specific interfaces
│ ├── ui/ # Base Shadcn components
│ └── ... # Feature-specific components
├── lib/ # Utility functions, DB clients, & Schemas
├── types/ # Global TypeScript definitions
└── prisma/ # Database schema & migrations
Built with ❤️ by Jay Savani