A high-performance, cryptographic trust-focused client review platform built for ExploitInject. Engineered with a cyberpunk aesthetic (glassmorphism, neon blue/purple accents, and glitch typography), this modern full-stack web application is powered by Next.js 16 (App Router), TypeScript, Tailwind CSS, Shadcn UI patterns, and MongoDB Atlas.
- Cyberpunk UI/UX ("Obsidian Cyberpunk"): Ultra-dark
#080808palette, glassmorphic cards, noise texture, and custom CSS glitch animations. - Public Reviews Page (
/reviews):- Filter reviews by service (SEO Optimization, Web Development, Cyber Security, Digital Marketing, Branding & Design).
- Multi-criteria sorting (Newest First, Highest Rated, Lowest Rated) and real-time keyword search.
- Clear "Verified Client" badge for trusted reviews.
- Interactive Review Submission (
/submit-review):- Star rating selector (1–5 stars).
- Anti-spam arithmetic math verification challenge.
- IP-based rate limiting to prevent spam floods.
- Instant alerts via Sonner toast notifications.
- Admin Panel (
/admin):- Secure admin login with bcrypt-hashed credentials & JWT session cookies.
- Real-time metrics: Total Reviews, Pending Approval, Average Rating, and Rejected count.
- Manage Reviews (
/admin/manage-reviews): Approve, Reject, Delete, or Toggle "Verified Client" badges. - Settings (
/admin/settings): Change Username, Email, and Password directly from the admin panel.
- Telegram Notifications (
/admin/settings):- Instant Telegram notification alerts when a client submits a new review.
- Instant notification alerts when an admin approves a review.
- Test alert dispatcher to verify Bot Token and Chat ID directly from the UI.
- SEO & Search Engines:
- Schema.org
Organization,Product, andAggregateRatingJSON-LD rich snippets. - Individual
Reviewschemas for Google search star rating results. - Built-in dynamic
sitemap.xmlandrobots.txtgeneration.
- Schema.org
- Framework: Next.js 16 (App Router & Turbopack)
- Language: TypeScript 5+
- Styling: Tailwind CSS + CVA (Class Variance Authority)
- Database: MongoDB (Mongoose with connection caching)
- Icons: Lucide Icons
- Toast Notifications: Sonner
- Security & Auth: Jose (JWT in HTTP-only cookies) + Bcrypt.js
-
Clone or Download the Repository:
git clone https://github.com/Exploit-Inject/Review_System_ExploitInject.git cd Review_System_ExploitInject -
Install Dependencies:
npm install
-
Configure Environment Variables (
.env): Ensure your.envcontains:MONGODB_URI=your_mongodb_connection_string DATABASE_NAME=exploitinject_reviews DATABASE_COLLECTION_NAME=review-ei JWT_SECRET=your_long_random_jwt_secret_token NEXT_PUBLIC_APP_URL=http://localhost:3000
-
Seed Database (Initial Admin & Sample Reviews):
npm run seed
Creates default admin
ExploitInject_Officialwith passwordadmin123. -
Run the Development Server:
npm run dev
Open http://localhost:3000 to view the site.
-
Build for Production:
npm run build npm run start
- URL: http://localhost:3000/admin/login
- Default Username:
ExploitInject_Official - Default Password:
admin123
Review_System_ExploitInject/
├── app/
│ ├── admin/
│ │ ├── login/page.tsx # Admin login page
│ │ ├── manage-reviews/page.tsx # Review moderation page
│ │ ├── settings/page.tsx # Telegram alerts & account settings
│ │ └── page.tsx # Admin overview dashboard
│ ├── api/
│ │ ├── admin/ # Admin endpoints (auth, reviews, settings)
│ │ ├── captcha/route.ts # Anti-spam math challenge
│ │ └── reviews/ # Public review API & stats
│ ├── reviews/page.tsx # Public reviews page
│ ├── submit-review/page.tsx # Review submission page
│ ├── globals.css # Obsidian Cyberpunk styles & theme
│ ├── layout.tsx # Root layout & navbar/footer
│ ├── page.tsx # Landing page & trust metrics
│ ├── robots.ts # Crawler rules
│ └── sitemap.ts # Dynamic XML sitemap
├── components/
│ ├── AdminLayout.tsx # Responsive admin sidebar & layout
│ ├── AdminManageReviewsClient.tsx # Interactive review moderation table
│ ├── Footer.tsx # Footer & social links
│ ├── Navbar.tsx # Responsive navigation & mobile menu
│ └── ReviewsClient.tsx # Reviews listing with filter & sorting
├── lib/
│ ├── auth.ts # JWT signing & cookie session handling
│ ├── mongodb.ts # Cached Mongoose connection
│ ├── settings.ts # Telegram settings storage
│ ├── telegram.ts # Telegram bot notification sender
│ └── utils.ts # Helper functions
├── models/
│ ├── Admin.ts # Admin schema & password hashing
│ └── Review.ts # Client review schema
├── public/
│ ├── exploitinject.png # ExploitInject brand logo
│ └── favicon.png # ExploitInject brand emblem
└── scripts/
└── seed.js # Seed script for initial admin & reviews
- Stateless CAPTCHA: Signed math challenge prevents bot automation without server session storage.
- Rate Limiting: IP-based rate limiting on review transmissions.
- Input Validation: Strict Mongoose schema constraints on name, rating bounds (1–5), service stream, and review text length.
- HTTP-Only Cookies: Admin authentication uses secure
SameSite=Laxcookies with signed JWTs. - No Direct GET Operations: Moderation actions (approve, reject, purge) run over authenticated
PATCHandDELETErequests.