# Super-frpc Frontend Frontend application for Super-frpc - a frpc instance integrated management system. This project provides a user-friendly web interface for managing frpc instances, users, sessions, and monitoring system resources. ## Features - User authentication with token-based login and registration - Instance management (create, delete, modify, start, stop, restart) - User management (create, edit, delete users) - Session management (view and delete active sessions) - System logs viewing with filtering capabilities - Real-time system monitoring (CPU, memory, disk, network) - System information display - Role-based access control (superuser, admin, visitor) - Responsive design with modern UI ## Technology Stack - **Vue.js 3** - Progressive JavaScript framework - **Vue Router 4** - Official router for Vue.js - **Axios** - HTTP client for API requests - **Chart.js** - Charting library for data visualization - **Vite** - Build tool and dev server ## Project Structure ``` frontend/ ├── index.html # Entry HTML file ├── package.json # Project dependencies and scripts ├── vite.config.js # Vite configuration ├── src/ │ ├── main.js # Application entry point │ ├── App.vue # Root component │ ├── router/ │ │ └── index.js # Vue Router configuration │ ├── api/ │ │ └── index.js # API service layer │ ├── utils/ │ │ └── functions.js # Utility functions │ ├── components/ │ │ ├── TopBar.vue # Top navigation bar │ │ └── SideBar.vue # Side navigation menu │ └── views/ │ ├── Login.vue # Login/Register page │ ├── Home.vue # Main layout │ ├── Instances.vue # Instance management │ ├── InstanceDetail.vue # Instance details │ ├── Users.vue # User management │ ├── Sessions.vue # Session management │ ├── Logs.vue # System logs │ ├── Monitor.vue # System monitoring │ └── SystemInfo.vue # System information ├── logger.js # Logging utility ├── api-backend.md # Backend API documentation └── README.md # This file ``` ## Installation ### Prerequisites - Node.js (v16 or higher) - npm or yarn - Backend server running (see backend README) ### Steps 1. Clone the repository: ```bash git clone cd Super-frpc/frontend ``` 2. Install dependencies: ```bash npm install ``` 3. Configure backend API endpoint in `vite.config.js`: ```javascript server: { proxy: { '/api': { target: 'http://localhost:8080', // Change to your backend address changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, '') } } } ``` ## Usage ### Development Mode Start the development server: ```bash npm run dev ``` The application will be available at `http://localhost:3000` ### Production Build Build for production: ```bash npm run build ``` The built files will be in the `dist/` directory. ### Preview Production Build Preview the production build: ```bash npm run preview ``` ## User Roles and Permissions | Feature | superuser | admin | visitor | |---------|-----------|-------|---------| | Login/Register | ✓ | ✓ | ✓ | | Instance Management | ✓ | ✓ | ✓ (view only) | | User Management | ✓ | ✗ | ✗ | | Session Management | ✓ | ✓ | ✗ | | System Logs | ✓ | ✓ | ✗ | | System Monitoring | ✓ | ✓ | ✓ | | System Information | ✓ | ✓ | ✓ | ## API Integration The frontend communicates with the backend through RESTful APIs. All API calls are centralized in `src/api/index.js`. ### Authentication All requests (except `/register`, `/login`, `/system/getStatus`, `/system/getSoftwareInfo`) require authentication via the `X-Token` header. ### Response Format All API responses follow this format: **Success:** ```json { "success": true, "message": "success message", "data": { ... } } ``` **Error:** ```json { "success": false, "message": "error message" } ``` For detailed API documentation, see [api-backend.md](api-backend.md). ## Development Guidelines ### Code Style - Follow Vue.js official style guide - Use component-based architecture - Keep components small and focused - Use composition API for new components - Add comments for complex logic ### File Naming - Components: PascalCase (e.g., `TopBar.vue`) - Views: PascalCase (e.g., `Instances.vue`) - Utilities: camelCase (e.g., `functions.js`) ### State Management - Use Vue 3 Composition API for local state - Use cookies for authentication state - Use reactive refs for component data ### API Calls - All API calls should go through `src/api/index.js` - Handle errors appropriately - Show user-friendly notifications - Log errors using the `postLog` function ## Browser Support - Chrome (latest) - Firefox (latest) - Safari (latest) - Edge (latest) ## Troubleshooting ### Common Issues 1. **API connection failed** - Check if backend server is running - Verify proxy configuration in `vite.config.js` - Check browser console for CORS errors 2. **Login not working** - Verify backend API is accessible - Check browser console for error messages - Ensure cookies are enabled in browser 3. **Build errors** - Clear `node_modules` and reinstall: `rm -rf node_modules && npm install` - Check Node.js version compatibility ## Contributing Contributions are welcome! Please follow these steps: 1. Fork the repository 2. Create a feature branch (`git checkout -b feature/amazing-feature`) 3. Commit your changes (`git commit -m 'Add some amazing feature'`) 4. Push to the branch (`git push origin feature/amazing-feature`) 5. Open a Pull Request ### Development Workflow 1. Ensure all tests pass 2. Follow the code style guidelines 3. Add comments for complex logic 4. Update documentation as needed 5. Test thoroughly before submitting ## License GPL-3.0 ## Contact For issues and questions, please open an issue on the repository. ## Acknowledgments - Vue.js team for the amazing framework - Chart.js for the visualization library - All contributors who helped make this project better