A modern Next.js template for research organizations to showcase projects, foster community discussions, and manage content with role-based access control.
- Project Showcase - Public project gallery with filtering, search, and detailed project pages
- Community Discussions - Reddit-style discussion board with nested comments and voting
- Role-Based Access Control - Admin, Manager, and Member roles with appropriate permissions
- Admin Dashboard - Content management system for projects and user roles
- Responsive Design - Modern UI with dark mode support
- Type-Safe - Full TypeScript support with comprehensive type definitions
- Framework: Next.js 15.2.4 (App Router)
- Language: TypeScript 5, React 19
- Database & Auth: Supabase
- Styling: Tailwind CSS 4, shadcn/ui, Aceternity UI
- UI Libraries: Framer Motion, Lucide React, React Icons, Radix UI
- Notifications: Sonner
- Email: Resend (optional)
- Deployment: Vercel (recommended)
Before you begin, ensure you have:
- Node.js 18+ installed
- A Supabase account (sign up for free)
- npm, yarn, pnpm, or bun package manager
git clone <your-repo-url>
cd Next-ProjectSpacenpm install
# or
yarn install
# or
pnpm installCopy the example environment file:
cp .env.example .env.localFill in your Supabase credentials:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_keyGet these from your Supabase project: Settings β API
Follow the detailed setup guide in docs/SETUP.md to:
- Create all required database tables
- Set up Row Level Security (RLS) policies
- Configure authentication
- Add yourself as an admin user
npm run dev
# or
yarn dev
# or
pnpm devOpen http://localhost:3000 in your browser.
- Setup Guide - Complete database setup and configuration
- Deployment Guide - Deploy to Vercel or other platforms
- API Reference - API endpoints and usage
src/
βββ app/
β βββ (withNavbar)/ # Public pages
β β βββ page.tsx # Home page
β β βββ projects/ # Project showcase
β β βββ community/ # Discussion board
β β βββ about/ # About page
β β βββ contact/ # Contact page
β βββ (withoutNavbar)/ # Auth-required pages
β β βββ login/ # Login page
β β βββ signup/ # Sign up page
β β βββ dashboard/ # User dashboard
β β βββ admin/ # Admin pages
β βββ api/ # API routes
βββ components/
β βββ ui/ # shadcn/ui components
β βββ admin/ # Admin components
β βββ community/ # Community components
β βββ dashboard/ # Dashboard widgets
β βββ auth/ # Authentication components
βββ utils/
βββ supabase/ # Supabase clients
βββ roles.ts # Role helpers
βββ types.ts # TypeScript types
βββ constants.ts # Application constants
The template includes three role levels:
- Admin - Full access to all features, can manage users and projects
- Manager - Can create and manage projects, moderate content
- Member - Can view projects and participate in discussions
See docs/SETUP.md for details on setting up roles.
- Public project showcase with filtering and search
- Project detail pages with updates
- Admin/Manager can create, edit, and delete projects
- Support for research papers, software, experiments, datasets
- Discussion board with posts and nested comments
- Voting system (upvote/downvote)
- Category-based organization
- Link discussions to projects
- Role-based dashboard widgets
- Project management interface
- User role management (Admin only)
- Statistics and analytics
- Push your code to GitHub
- Import your repository in Vercel
- Add environment variables in Vercel dashboard
- Deploy!
See docs/DEPLOYMENT.md for detailed instructions.
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLintThe project includes comprehensive TypeScript types in src/utils/types.ts. Import and use them throughout your codebase:
import { Project, DiscussionPost, UserRole } from '@/utils/types'Application constants are centralized in src/utils/constants.ts:
import { ROLES, PROJECT_STATUS, ROUTES } from '@/utils/constants'Contributions are welcome! Please feel free to submit a Pull Request.
This project is open source and available under the MIT License.
If you encounter any issues:
- Check the Setup Guide for common problems
- Review the API Documentation for endpoint details
- Open an issue on GitHub
- Next.js - The React Framework
- Supabase - Open source Firebase alternative
- shadcn/ui - Beautiful component library
- Aceternity UI - Modern UI components
Built with β€οΈ for research organizations