Uplert is a modern monitoring application designed to track website uptime and provide real-time alerts to ensure your services remain reliable and accessible. With Uplert, you can monitor websites effectively using a sleek, user-friendly interface and stay updated with instant notifications whenever an issue arises.
- Website Monitoring: Track the uptime and downtime of websites in real-time.
- WebSocket Integration: Live updates for monitored websites, ensuring instant notifications.
- User-Friendly Dashboard: Interactive dashboard built with Next.js, TailwindCSS, and Shadcn UI.
- Alerts: Get notified when a website goes down or experiences issues.
- Historical Data: View uptime statistics over time.
- Responsive Design: Fully responsive interface, optimized for all devices.
- Java Spring Boot: Core backend logic and API development.
- WebSocket: Real-time communication for instant updates.
- Next.js: Server-side rendering and frontend development.
- TailwindCSS: Customizable, utility-first CSS framework for styling.
- Shadcn UI: Modern and accessible UI components.
Before running the application, ensure you have the following installed:
- Java Development Kit (JDK) (version 17 or higher)
- Node.js (version 18 or higher)
- npm or yarn
- Maven or Gradle (for Spring Boot backend)
The following features are planned but not yet implemented:
- Pause & Resume Functionality: Enable users to pause and resume monitoring with proper state handling.
- Validation for Website Dialog: Prevent duplicate endpoints when creating monitoring entries.
- Backend Validation: Validate website URLs at the backend and send validation results to the frontend.
- Session Close Handling: Properly handle session closure for established connections.
- Incident Response: Integrate notifications via Email, Slack, Discord, SMS, etc.
- Email Integration: Implement emailing functionality using Mailhog or other tools.
Currently implemented features:
- Data Streaming: Use data from
/ws/{projectId}/log
to populate the dashboard. - Real-time Updates: Ensure data updates correctly from the WebSocket endpoint.
- Delete Functionality: Handle deletion with proper state management.
- Manual Ping: Allow users to manually check website status.
- Duplicate Logs Handling: Prevent duplicate logs and stats from being displayed.
- Log Route: Implement a separate route for logs and related details.
- Persistence: Store dashboard data to maintain records.
- Manual Ping: Support manual pings from the backend.
git clone https://github.com/harshau007/uplert.git
cd uplert
- Navigate to the backend directory:
cd backend
- Build the Spring Boot application:
./mvnw clean install
- Run the application:
./mvnw spring-boot:run
- The backend server will be available at
http://localhost:8080
.
- Navigate to the frontend directory:
cd frontend
- Install dependencies:
npm install
- Start the development server:
npm run dev
- The frontend application will be available at
http://localhost:3000
.
- Open the frontend in your browser:
http://localhost:3000
. - Add websites to monitor via the dashboard.
- View real-time website uptime status.
- Receive alerts for any downtime or issues.
uplert/
├── backend/ # Java Spring Boot backend
│ ├── src/ # Source code for backend
│ ├── pom.xml # Maven configuration
│ └── ...
├── frontend/ # Next.js frontend
│ └── src/
│ ├── app/ # Next.js app
│ ├── components/ # UI components built with Shadcn and TailwindCSS # Public assets
│ └── ...
└── README.md # Project documentation
We welcome contributions to enhance Uplert! To contribute:
- Fork the repository.
- Create a new branch for your feature or fix:
git checkout -b feature-name
- Commit your changes and push the branch:
git push origin feature-name
- Open a pull request.
This project is licensed under the MIT License.
For inquiries, suggestions, or feedback, please contact:
- GitHub: github.com/harshau007