BlueWave Uptime
BlueWave uptime monitoring application
Getting Started
- Clone this repository to your local machine
- Installation (Client)
- Installation (Server)
- Configuration(Server)
- Endpoints
Client
Installation
- Change directory to the
Client directory
- Install all dependencies by running
npm install
Starting Development Server
- Run
npm run dev to start the development server.
Server
Installation
- Change directory to the
Server directory
- Install all depencies by running
npm install
Configuration
Configure the server with the following environmental variables
| ENV Varialbe Name |
Required/Optional |
Type |
Description |
Accepted Values |
| JWT_SECRET |
Required |
string |
JWT secret |
|
| DB_TYPE |
Optional |
string |
Specify DB to use |
MongoDB | FakeDB |
| DB_CONNECTION_STRING |
Required |
string |
Specfies URL for MongoDB Database |
|
| PORT |
Optional |
integer |
Specifies Port for Server |
|
| MAILERSEND_API_KEY |
Required |
string |
Specfies API KEY for MailerSend service |
|
| SYSTEM_EMAIL_ADDRESS |
Required |
string |
Specfies System email to be used in emailing service |
|
Starting the Development Server
- run
npm run dev to start the development server
Endpoints
All endpoints return a response in this format:
| Name |
Type |
Notes |
| success |
boolean |
Success or failure of request |
| msg |
string |
Message describing response |
| data |
Object |
Arbitrary Payload |
Example:
Data Types
User
| Name |
Type |
Notes |
| firstname |
string |
First name |
| lastname |
string |
Last name |
| email |
string |
User's email |
| profilePicUrl |
string |
URL to User's picture |
| isActive |
boolean |
Default to true |
| isVerified |
boolean |
Default to false |
| updated_at |
Date |
Last update time |
| created_at |
Date |
Time created at |
Monitor
| Name |
Type |
Notes |
| userId |
string |
Unique ID identifying monitor creator |
| name |
string |
Name of the monitor |
| description |
string |
Description of the monitor |
| url |
string |
Url the monitor will ping |
| isActive |
boolean |
Whether or not the monitor is active |
| interval |
integer |
Interval with which to ping monitor (ms) |
| updatedAt |
Date |
Last time the monitor was updated |
| CreatedAt |
Date |
When the monitor was updated |
POST /api/v1/auth/register
| Method/Headers |
Value |
| Method |
POST |
| content-type |
application/json |
Body
| Name |
Type |
Notes |
| firstname |
string |
|
| lastname |
string |
|
| email |
string |
Valid email address |
| password |
string |
Min 8 chars |
Response Payload
| Type |
Notes |
| JWT |
JSON Web Token containing a User |
Sample CURL request
Sample Response
POST /api/v1/auth/login
| Method/Headers |
Value |
| Method |
POST |
| content-type |
application/json |
Body
| Name |
Type |
Notes |
| email |
string |
Valid email address |
| password |
string |
Min 8 chars |
Response Payload
| Type |
Notes |
| JWT |
JSON Web Token Containing a User |
Sample CURL request
Sample response
GET /api/v1/monitors
| Method/Headers |
Value |
| Method |
GET |
Response Payload
| Type |
Notes |
Array[Monitor] |
Array of monitors |
GET /api/v1/monitor/{id}
| Method/Headers |
Value |
| Method |
GET |
Response Payload
| Type |
Notes |
Monitor |
Single monitor with the id in the request parameter |
GET /api/v1/monitors/user/{userId}
| Method/Headers |
Value |
| Method |
GET |
Request Payload
| Type |
Notes |
Array[Monitor] |
Array of monitors created by user with userId specified in request |
Contributors
Made with contrib.rocks.