Skip to content

AkshayChandole/VM-Manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

17 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ–₯️ VM Manager

Welcome to the VM Manager application! This app allows users to manage Virtual Machines (VMs) effortlessly through a user-friendly interface. Users can add, delete, and connect to VMs with ease.

✨ Features

  • βž• Add New VM: Add details for a new VM including name, domain, username, and password.
  • ❌ Delete VM: Remove a VM from the list.
  • πŸ”— Connect to VM: Connect to a VM using RDP (Remote Desktop Protocol).
  • πŸ“’ Real-Time Notifications using React Toastify
  • πŸ”’ Password Encryption using CryptoJS

πŸ“ Technical Note:

Since directly connecting to a remote desktop using a web app poses security concerns, I've implemented a method to trigger batch commands for establishing RDP connections using Node.js. This ensures a secure and seamless connection process.

Watch the Demo Video

Watch the video 🎞️

πŸ“Έ Screenshots

🏠 Home Page

homePage

βž• Add New VM

addNewVM

πŸ“‹ VM List

vmList

πŸš€ Getting Started

πŸ“‹ Prerequisites

  • Node.js: Ensure you have Node.js installed. Download from Node.js.
  • npm: Node package manager is required to install dependencies.

πŸ› οΈ Installation

  1. Clone the repository:

    git clone https://github.com/AkshayChandole/vm-manager.git
    cd vm-manager
  2. Install server dependencies:

    cd vm-manager-server
    npm install
  3. Install client dependencies:

    cd vm-manager-client
    npm install

▢️ Running the Application

  1. Start the server:
    cd vm-manager-server
    npm run dev
  2. Start the client:
    cd vm-manager-client
    npm start
  3. Open your browser and navigate to: - http://localhost:30000

πŸ—‚οΈ Folder Structure

`vm-manager/
β”œβ”€β”€ vm-manager-server/
β”‚   β”œβ”€β”€ config/
β”‚   β”‚   └── VMs.json
β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   └── vmRoutes.js
β”‚   β”œβ”€β”€ utils/
β”‚   β”‚   └── fileUtils.js
β”‚   β”œβ”€β”€ index.js
β”‚   └── package.json
β”œβ”€β”€ vm-manager-client/
β”‚   β”œβ”€β”€ public/
β”‚   β”‚   └── index.html
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”‚   β”œβ”€β”€ VMForm.js
β”‚   β”‚   β”‚   β”œβ”€β”€ VMList.js
β”‚   β”‚   β”œβ”€β”€ services/
β”‚   β”‚   β”‚   └── vmService.js
β”‚   β”‚   β”œβ”€β”€ App.js
β”‚   β”‚   β”œβ”€β”€ index.js
β”‚   β”‚   β”œβ”€β”€ App.css
β”‚   └── package.json
β”œβ”€β”€ .gitignore
└── README.md`

πŸ“‘ API Endpoints

  • GET /api/vms: Fetch all VMs.
  • POST /api/vms: Add a new VM.
  • DELETE /api/vms/:name: Delete a VM by name.
  • POST /api/vms/connect: Connect to a VM.

πŸ’» Technologies Used

  • Frontend: React, React Toastify
  • Backend: Node.js, Express
  • Database: JSON file (for simplicity)

🀝 Contribution

We welcome contributions! Please follow these steps to contribute:

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

πŸ“§ Contact

For any inquiries or feedback, please contact akshaychandole1234@gmail.com.


About

VM Manager webapp to manage Virtual Machines (VMs) effortlessly through a user-friendly interface.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages