A Next.js 13+ platform for real estate professionals to manage and access marketing assets, templates, and resources.
-
🔐 Authentication (NextAuth.js)
- User & Admin authentication flows
- Protected routes and API endpoints
- Role-based access control
-
👥 User Management
- User registration and login
- Profile management
- Subscription handling
- Resource access tracking
-
💼 Asset Management
- Upload and manage marketing templates
- Categories and tags organization
- Resource favorites and downloads
- Usage analytics
-
🎨 Modern UI
- Dark/Light mode support
- Responsive design
- Animated components with Framer Motion
- Tailwind CSS styling
- Framework: Next.js 13+ (App Router)
- Authentication: NextAuth.js
- Database: MongoDB with Mongoose
- Styling: Tailwind CSS
- UI Components: shadcn/ui
- Animation: Framer Motion
- Form Handling: React Hook Form + Zod
- Icons: Lucide Icons
src/
├── app/ # Next.js app router pages
├── components/
│ ├── admin/ # Admin dashboard components
│ ├── auth/ # Authentication components
│ ├── dashboard/ # User dashboard components
│ ├── layout/ # Layout components
│ └── ui/ # Reusable UI components
├── lib/ # Utility functions
├── models/ # Mongoose models
└── types/ # TypeScript type definitions
- Clone the repository:
git clone <repository-url>
- Install dependencies:
npm install
- Set up environment variables:
# Database
MONGODB_URI=
# Authentication
AUTH_SECRET=
NEXTAUTH_SECRET=
NEXTAUTH_URL=
# Cloudinary (for image uploads)
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME=
NEXT_PUBLIC_CLOUDINARY_API_KEY=
NEXT_PUBLIC_CLOUDINARY_API_SECRET=
- Run the development server:
npm run dev
npm run dev
- Start development servernpm run build
- Build for productionnpm run start
- Start production servernpm run create-admin
- Create admin usernpm run hash-password
- Hash password utility
/api/auth/*
- Authentication endpoints/api/admin/*
- Admin-only endpoints/api/schedule
- Resource scheduling/api/assets
- Asset management
The application requires Node.js version 18.17.0 or higher.
- User: Handles user data, subscriptions, and resource access
- Asset: Manages marketing resources and templates
- Category: Organizes assets into categories
- Transaction: Tracks subscription payments
- Notification: Manages user notifications
- ScheduledAsset: Handles content calendar scheduling
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a new Pull Request
This project is licensed under the MIT License.
Haseeb Ahmed - [email protected]
Connect with me on: