A web application for monitoring domain blocking status with user management and credit-based API access.
-
User Authentication System
- Role-based authentication (admin/user)
- JWT-based secure login
- Registration with password validation
- Protected routes based on user roles
-
Domain Monitoring
- Add/remove domains for monitoring
- Real-time domain status checking
- Credit-based domain check system
- Automatic interval-based domain status updates
-
Credit System
- Per-domain credit deduction
- Credit tracking for domain checks
- Configurable check intervals
- Prevents domain checks when credits are insufficient
-
Frontend:
- React
- React Router
- Context API for state management
- Tailwind CSS for styling
- Axios for API calls
-
Backend:
- Node.js
- Express
- MySQL
- JWT for authentication
- Bcrypt for password hashing
- Node.js (v14 or higher)
- MySQL (v8 or higher)
- npm or yarn
- Clone the repository:
git clone https://github.com/yourusername/domain-monitor.git
cd domain-monitor- Install backend dependencies:
cd backend
npm install- Install frontend dependencies:
cd ../frontend
npm install- Create a MySQL database:
CREATE DATABASE domain_monitor;- Configure environment variables:
Create a
.envfile in the backend directory:
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=domain_monitor
JWT_SECRET=your-secret-key-here
PORT=5000- Initialize the database:
cd backend
mysql -u root -p domain_monitor < database.sql- Start the backend server:
cd backend
npm start- Start the frontend development server:
cd frontend
npm start- Access the application:
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
- Email: [email protected]
- Password: admin123
See API Documentation for detailed API endpoints and usage.
- Each user starts with 100 credits
- Each domain check costs 1 credit
- Credits are deducted for:
- Initial domain check when adding
- Manual domain checks
- Automatic background checks
The application uses the Skiddle API (https://check.skiddle.id/) to check domain blocking status:
- Single domain check endpoint:
https://check.skiddle.id/?domain=example.com&json=true - Batch domain check endpoint:
https://check.skiddle.id/?domains=domain1.com,domain2.com&json=true
- JWT token-based authentication
- Role-based access control
- Secure password storage (bcrypt)
- Credit system prevents unlimited API usage
- Server-side input validation
- Protected API endpoints
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
© Skiddle ID 2025
Licensed under MIT