Skip to content

SyedShahulAhmed/PingoAPI

Repository files navigation

🚀 PingoAPI

PingoAPI is a modern API monitoring platform built for developers and DevOps teams to monitor the availability, uptime, and performance of API endpoints in real time. Organize endpoints into projects, automate health checks, and gain valuable insights through a clean, intuitive dashboard.


🌐 Live Demo

🔗 Demo: https://pingo-api-ten.vercel.app


✨ Features

  • Real-Time Monitoring — Monitor API availability and response times.
  • 🔄 Automated Health Checks — Schedule recurring endpoint checks.
  • 📁 Project Management — Organize APIs into multiple projects.
  • 🌐 Endpoint Monitoring — Track individual endpoints independently.
  • 📊 Activity Logs — View detailed monitoring history.
  • 📈 Response Time Analytics — Measure API performance.
  • 🔒 JWT Authentication — Secure user authentication and protected routes.
  • 📱 Responsive Dashboard — Optimized for desktop and mobile.
  • ⚙️ Cron-Based Monitoring — Automated scheduled endpoint checks.
  • 🚀 Production Ready — Optimized for Vercel deployment.

🛠️ Tech Stack

🎨 Frontend

  • Next.js 16
  • React 19
  • TypeScript
  • Tailwind CSS v4
  • Shadcn/UI
  • Radix UI
  • React Hook Form
  • Zod
  • Lucide React
  • React Icons
  • Sonner

⚙️ Backend

  • Next.js API Routes
  • Server Actions
  • Middleware
  • JWT Authentication
  • Node Cron

🗄️ Database

  • MongoDB
  • Mongoose

🚀 Deployment

  • Vercel

🧹 Development Tools

  • ESLint
  • TypeScript
  • npm

🚀 Getting Started

📋 Prerequisites

Before getting started, ensure you have:

  • Node.js 18+
  • npm 9+
  • MongoDB Atlas (or local MongoDB)

📥 Installation

1. Clone the repository

git clone https://github.com/SyedShahulAhmed/PingoAPI

cd PingoAPI

2. Install dependencies

npm install

3. Configure Environment Variables

Create a file named .env.local

MONGODB_URI=your_mongodb_connection_string

JWT_SECRET=your_super_secret_jwt_key

CRON_SECRET=your_secure_cron_secret

4. Start the Development Server

npm run dev

Visit:

http://localhost:3000

⚙️ Environment Variables

Variable Description
MONGODB_URI MongoDB connection string
JWT_SECRET Secret key used for JWT authentication
CRON_SECRET Secret used to authorize cron requests

Example:

MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/pingoapi

JWT_SECRET=my_super_secret_jwt_key

CRON_SECRET=my_secure_cron_secret

📂 Project Structure

src
│
├── actions
│   ├── auth
│   ├── dashboard
│   ├── endpoint
│   ├── logs
│   ├── project
│   └── settings
│
├── app
│   ├── api
│   ├── (auth)
│   └── dashboard
│
├── components
├── lib
├── models
├── monitor
├── styles
├── types
└── validators

🗄️ Database Models

Model Description
👤 User Stores user accounts and authentication details
📁 Project Groups monitored endpoints
🌐 Endpoint Stores endpoint configuration
📋 ActivityLog Records monitoring history and uptime checks

🔧 Available Scripts

Development

npm run dev

Build Production

npm run build

Start Production

npm start

Lint

npm run lint

Deploy your repository on Vercel, add the environment variables, and your application is ready to go.


🤝 Contributing

Contributions are always welcome!

1. Fork the repository

2. Create a feature branch

git checkout -b feature/amazing-feature

3. Commit your changes

git commit -m "Add amazing feature"

4. Push your branch

git push origin feature/amazing-feature

5. Open a Pull Request


About

PingoAPI is a developer-focused API monitoring platform that enables users to monitor the availability, health, and performance of API endpoints through a simple and centralized dashboard.

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages