LandSync is a modern, comprehensive web application built with Next.js 16 for managing land parcel data. It features a robust Role-Based Access Control (RBAC) system, ensuring secure and tailored experiences for both Administrators and active Users.
- Secure Authentication: Complete auth flow including Login, Registration, Forgot/Reset Password, and OTP Verification using JWT (JSON Web Tokens).
- Role-Based Access Control (RBAC):
- Admin: Full access to manage users, system settings, and comprehensive data views.
- User: Dedicated dashboard for managing personal or assigned land data.
- Data Management:
- Interactive dashboards for visualizing and managing land parcels.
- Export capabilities to Excel and PDF formats.
- Modern UI/UX:
- Built with Tailwind CSS 4 for a sleek, responsive design.
- Framer Motion for smooth, engaging animations.
- Radix UI primitives for accessible, high-quality components.
- Dark/Light mode support via
next-themes.
- Framework: Next.js 16 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS 4, Radix UI, Lucide React, HugeIcons
- Forms & Validation: React Hook Form, Zod
- Data Handling:
exceljs,jspdf - Auth & Security:
jose(JWT)
LandSync/
├── app/
│ ├── (auth)/ # Authentication routes (login, register, etc.)
│ ├── (roles)/ # Protected routes requiring specific roles
│ │ ├── admin/ # Admin-specific pages
│ │ ├── user/ # User-specific pages
│ │ └── dashboard/ # General dashboard
│ ├── api/ # API routes
│ └── globals.css # Global styles
├── components/ # Reusable UI components
├── hooks/ # Custom React hooks
├── lib/ # Utility functions and configurations
├── public/ # Static assets
└── ...Ensure you have the following installed:
-
Clone the repository:
git clone https://github.com/your-username/land-sync.git cd land-sync -
Install dependencies:
npm install # or yarn install # or pnpm install
-
Environment Setup: Create a
.envfile in the root directory based on your configuration requirements (e.g., API endpoints, JWT secrets). -
Run the development server:
npm run dev
Open http://localhost:3000 with your browser to see the result.
npm run dev: Starts the development server with Turbopack.npm run build: Builds the application for production.npm start: Runs the built production application.npm run lint: Runs ESLint to check for code quality issues.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License.