A modern, responsive web application for managing IP cameras. Built with Next.js, TypeScript, and Material UI.
- Authentication - Secure JWT-based authentication system
- Camera Management - Add, edit, delete, and view IP cameras
- User Management - Manage users with different role permissions
- Role-Based Access Control - Different functionality for Admins vs. Viewers
- Responsive UI - Works on desktop and mobile devices
- Node.js 14+ and npm/yarn
- Clone the repository
- Install dependencies:
npm install
# or
yarn install
- Run the development server:
npm run dev
# or
yarn dev
- Open http://localhost:3000 in your browser
- Admin:
admin
/admin123
- Viewer:
user
/user123
src/
├── components/ # React components
│ ├── layout/ # Layout components
│ └── ui/ # Reusable UI components
├── contexts/ # React contexts (Auth, etc.)
├── pages/ # Next.js pages
│ ├── api/ # API routes
│ ├── cameras/ # Camera management pages
│ ├── users/ # User management pages
│ └── _app.tsx # App component
├── services/ # Service layer
│ └── api/ # API services
└── styles/ # Global styles
- The application uses a hybrid approach with mock data for development but can connect to a real API in production
- To enable real API calls, set
API_ENABLED = true
in the service files - The authentication system is currently using mock data but is designed to work with a real backend
See API_DOCS.md for detailed API documentation including:
- Authentication endpoints
- Camera management endpoints
- Request/response formats
- Error handling