npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

servitect

v1.2.8

Published

servitect stands for Server-Architect. A one-click Node.js MVC Server generator

Readme

Servitect - A one-click Node.js MVC Server generator

Server + Architect = Servitect

Automate the creation of a well-structured Model-View-Controller (MVC) pattern for your Node.js projects with ease. Servitect is designed to help developers quickly scaffold a project, follow best practices, and integrate various functionalities with minimal setup.

npm version npm downloads License: MIT

🤔 Why Servitect?

Servitect is designed to simplify and accelerate the server development process by automating the setup of essential components for a modern backend. Here's why you should choose Servitect:

  • 🏎️ Speedy Development: Perfect for hackathons and rapid prototyping, Servitect allows you to set up a fully functional server in minutes, letting you focus on building unique features and meeting tight deadlines rather than getting stuck in setup.

  • 🗄️ MongoDB Integration: With built-in support for MongoDB, Servitect is ideal for modern applications that need a flexible and scalable NoSQL database.

  • ⚙️ Customizable: Servitect's menu-driven approach allows you to pick and choose the features you need, giving you flexibility while still automating repetitive tasks.

  • 🤖 AI-Ready: Built-in support for Large Language Models (LLMs) with LangChain integration for modern AI-powered applications.

Servitect streamlines the backend creation process, allowing developers to focus on building what matters most. Whether you're a beginner or an experienced developer, Servitect provides the tools you need to jumpstart your server development!

🚀 Features

Servitect comes with a variety of built-in features that streamline the development process:

1. 📁 MVC Folder Structure Generation

  • Automatically generates a standard Model-Controller folder structure.
  • Creates the directories and files for:
    • Models: MongoDB Schema definitions and database models.
    • Controllers: Handles logic and data flow between models and views.
    • Routes: Defines CRUD endpoints.
    • Helper: Utility functions and middleware.
    • Constants: Application constants and messages.

2. ✅ Best Practices for Scalability and Error Handling

  • Comes with pre-configured global error-handling mechanisms.
  • Implements best practices for middleware and request validation.
  • Follows scalable design patterns to ensure maintainability even as your application grows.
  • Built-in try-catch wrapper for async route handlers.

3. 🔒 Authentication APIs

  • Provides complete authentication system with JWT tokens.
  • Actor-based authentication system for users, admins, and custom roles.
  • Secure password hashing with bcryptjs.
  • Token verification middleware for protected routes.
  • Session management with configurable token expiration.

4. 📝 CRUD API Generation

  • Quickly generate Create, Read, Update, Delete (CRUD) APIs for any entity.
  • Support for both Actor models (with authentication) and Entity models.
  • Consistent API response format with success/error handling.
  • Automatic route registration and controller generation.

5. 📤 File Uploads to Cloudinary

  • Complete file upload system with Cloudinary integration.
  • Support for single file, multiple files, and field-specific uploads.
  • Automatic local file cleanup after cloud upload.
  • Built-in file deletion capabilities from Cloudinary.
  • Multer middleware for handling multipart/form-data.

6. 🟢 WhatsApp Notifications Integration

  • Integrates with WhatsApp Cloud API for sending notifications.
  • Template-based message sending system.
  • Easy configuration with access tokens.
  • Perfect for automated notifications and alerts.

7. 🔔 Firebase Cloud Messaging API Integration for Mobile Apps

  • Complete Firebase FCM setup for push notifications.
  • Support for sending notifications to individual devices.
  • Topic-based messaging for broadcasting to multiple users.
  • Batch notifications for sending to multiple FCM tokens.
  • Multi-topic notification support with condition-based targeting.

8. 📨 NodeMailer Integration

  • Full email functionality with NodeMailer.
  • Gmail SMTP configuration out of the box.
  • HTML email support for rich content.
  • Environment-based configuration for security.

9. 💬 Chat Logic with Database Model and API Creation

  • Ready-to-use real-time chat system.
  • MongoDB-based chat storage with message history.
  • APIs for sending messages and retrieving conversations.
  • Support for one-on-one conversations with message threading.
  • Timestamp tracking and sender identification.

10. 🐳 Docker Setup

  • Pre-configured Docker setup for containerization.
  • Production-ready Dockerfile with Node.js best practices.
  • Easy deployment with container orchestration support.
  • Development and production environment configurations.

11. 🤖 Large Language Model (LLM) Integration

  • Ollama Integration: Local LLM deployment with conversation memory.
  • LangChain Framework: Advanced prompt engineering and chain operations.
  • Session-based conversation history for contextual responses.
  • Customizable system prompts and model configurations.
  • Support for multiple LLM models through Ollama.

📦 Installation

Install Servitect globally using npm:

npm install -g servitect

For Linux and Mac users:

sudo npm install -g servitect

🏁 Quick Start

After installation, you can create a new MVC project by running:

servitect

Follow the interactive Menu to configure your project with the features you need.

📚 Usage

Creating a New Project

  1. Install Servitect globally:

    npm install -g servitect
  2. Run the CLI tool:

    servitect
  3. Select your project directory and provide a project name when prompted.

  4. Choose "Initialize MVC" from the menu to create the basic structure.

  5. Add additional modules as needed:

    • Actor Models (Users, Admins, etc.)
    • Entity Models (Products, Orders, etc.)
    • Chat Module
    • File Upload Module
    • Firebase FCM
    • WhatsApp Integration
    • NodeMailer
    • Docker Setup
    • LLM Integration
  6. Navigate to your project and start the server:

    cd your-project-name
    npm run server
  7. Test your APIs - if you see Connected in the console, your APIs are ready!

🗂️ Project Structure

Here's an overview of the generated project structure:

my-project/
│
├── models/                 # Database models
│   ├── User.js            # Example actor model
│   └── Product.js         # Example entity model
│
├── controllers/           # Business logic
│   ├── userController.js
│   ├── productController.js
│   ├── chatController.js
│   ├── uploadController.js
│   └── firebaseController.js
│
├── routes/               # API routes
│   ├── router.js         # Main router
│   ├── userRoutes.js
│   ├── productRoutes.js
│   ├── chatRoutes.js
│   ├── fileUploadRoutes.js
│   └── firebaseRoutes.js
│
├── helper/               # Utility functions
│   ├── JsonResponse.js   # Standardized API responses
│   ├── JWTAuthHelper.js  # JWT authentication
│   ├── TryCatch.js       # Error handling wrapper
│   ├── cloudinary.js     # File upload utilities
│   ├── LlmHelperOllama.js # LLM integration
│   ├── Nodemailer.js     # Email utilities
│   └── WhatsappNotification.js # WhatsApp messaging
│
├── constants/            # Application constants
│   └── Message.js        # Response messages
│
├── middleware/           # Express middleware
│   └── multer.js         # File upload middleware
│
├── public/               # Static files
│   └── uploads/          # Temporary file storage
│
├── .env                  # Environment variables
├── .gitignore           # Git ignore rules
├── package.json         # Dependencies and scripts
├── app.js               # Express application setup
├── db.js                # Database connection
├── Dockerfile           # Docker configuration
└── firebase-key.json    # Firebase service account key

🔌 Integrations

1. Cloudinary Setup

To enable file uploads with Cloudinary:

  1. Sign up for a Cloudinary account
  2. Get your Cloud Name, API Key, and API Secret from the dashboard
  3. When prompted by Servitect, enter these credentials or add them to .env later:
    CLOUDINARY_CLOUD_NAME=your_cloud_name
    CLOUDINARY_API_KEY=your_api_key
    CLOUDINARY_API_SECRET=your_api_secret

2. Firebase FCM Setup

To use Firebase Cloud Messaging:

  1. Create a Firebase project in the Firebase Console
  2. Go to SettingsCloud Messaging and enable it
  3. Go to Service Accounts → Generate Private Key
  4. Save the downloaded JSON file as firebase-key.json in your project root
  5. Add to .env:
    GOOGLE_APPLICATION_CREDENTIALS="firebase-key.json"

3. WhatsApp Setup

To use WhatsApp Cloud API:

  1. Follow the Meta WhatsApp Business API documentation
  2. Get your access token and phone number ID
  3. Add to .env:
    WHATSAPP_URL="https://graph.facebook.com/v18.0/YOUR_PHONE_NUMBER_ID/messages"
    WHATSAPP_ACCESS_TOKEN=your_access_token

4. NodeMailer Setup

For email functionality:

  1. Use a Gmail account with App Password (recommended)
  2. Add to .env:
    [email protected]
    NODEMAILER_ADMIN_PASSWORD=your_app_password

5. LLM Setup (Ollama)

For AI integration:

  1. Install Ollama locally
  2. Pull a model (e.g., ollama pull llama3.1)
  3. Ensure Ollama is running on http://localhost:11434
  4. The LLM helper is pre-configured and ready to use

📋 API Documentation

Authentication Endpoints

POST /user/register        # User registration
POST /user/login           # User login
GET  /user/get-by-id/:id   # Get user by ID (protected)

File Upload Endpoints

POST /fileUpload/uploadSingleFile      # Upload single file
POST /fileUpload/uploadMultipleFiles   # Upload multiple files
POST /fileUpload/deleteSingleFile      # Delete file from Cloudinary

Chat Endpoints

POST /chat/send-chat                   # Send a message
GET  /chat/get-my-chat/:id/:contactId  # Get conversation history

Firebase FCM Endpoints

POST /firebase/sendNotificationToCustomDevice    # Send to specific device
POST /firebase/sendNotificationToTopic/:topic    # Send to topic subscribers
POST /firebase/sendBatchNotificationsMultipleFCMS # Batch send to multiple devices

LLM Endpoints

POST /llm/ask-llm          # Send prompt to LLM and get response

🛡️ Security Features

  • JWT Authentication: Secure token-based authentication
  • Password Hashing: bcryptjs for secure password storage
  • CORS Protection: Cross-origin request handling
  • Environment Variables: Sensitive data protection
  • Input Validation: Request data validation and sanitization
  • Error Handling: Comprehensive error management without exposing sensitive info

🔧 Development Commands

npm run server    # Start development server with nodemon
npm run watch     # Alternative development command

🐣 New to Development? We're Here to Help!

If you are just starting your journey in server development or find certain concepts challenging, we have resources to assist you:

  • YouTube Tutorials: Visit our YouTube channel for comprehensive tutorials
  • In-Depth Documentation: Detailed documentation covering features, commands, and best practices
  • Community Support: Connect with us on LinkedIn for support and questions:

🤝 Contributing

Contributions, issues, and feature requests are welcome! Feel free to check the issues page.

How to Contribute

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📈 Stats

  • 🎯 1000+ weekly downloads on npm
  • Growing GitHub stars
  • 🚀 Production-ready code generation
  • 🔧 10+ integrated modules and features

📄 License

This project is MIT licensed.

🙏 Acknowledgements

  • Thanks to all contributors who have helped shape Servitect
  • Inspired by the need for rapid, scalable server development in the Node.js ecosystem
  • Built with modern development practices and industry standards

🔗 Links


🚀 Happy Coding!

Made with ❤️ by Elite Coders

Server + Architect = Servitect - Your one-click solution for Node.js MVC backend development!