Skip to content

sohaibirfann/DevToolBox

 
 

Repository files navigation

DeveloperToolsApiProject (DevToolBox)

A full-stack web application that bundles a collection of everyday developer utilities behind a single REST API and a React front end. It provides tools such as a URL shortener, QR code generator, document/PDF converters, a password generator, and an AI chatbot, alongside user authentication and per-user usage tracking.

Tech Stack

Backend (src/)

  • Java 21
  • Spring WebMVC 6.1 (REST controllers, packaged as a WAR for a servlet container such as Tomcat)
  • Hibernate 6 / JPA with HikariCP connection pooling
  • MySQL 9
  • Jakarta Mail (SMTP) for transactional email and OTPs
  • jBCrypt for password hashing
  • ZXing (QR codes), Apache POI / docx4j / iText / PDFBox (document & PDF processing)
  • Cloudinary for media storage
  • Maven build

Frontend (FrontEnd/)

  • React 19 + Vite 7
  • Tailwind CSS 4
  • React Router, React Hook Form, Axios, Recharts, Framer Motion

Project Structure

.
├── pom.xml                 # Maven build & backend dependencies
├── .env.example            # Template for required secrets/API keys
├── src/main/java/com/DevToolBox/
│   ├── controller/         # REST endpoints (see API Overview below)
│   ├── Services/           # Business logic
│   ├── dao/                # Data access objects
│   ├── Model/              # JPA entities (Users, Url, Usages)
│   ├── Config/             # Spring, web, and Cloudinary configuration
│   └── util/               # Helpers (password, OTP, short-code generation)
├── src/main/resources/
│   ├── sql/sqlDevtools.sql # Database schema
│   ├── META-INF/persistence.xml
│   └── mail.properties
├── src/main/webapp/        # WEB-INF (web.xml, beans.xml), index.html
└── FrontEnd/               # React single-page application

Prerequisites

  • JDK 21
  • Maven 3.9+
  • MySQL 9 (or a compatible MySQL server)
  • Node.js 18+ and npm (for the front end)
  • A servlet container such as Apache Tomcat 10+ to deploy the WAR

Configuration

Copy .env.example and supply the required credentials:

cp .env.example .env
Variable Purpose
GEMINI_API_KEY AI chatbot (Gemini)
OPEN_AI_API_KEY AI chatbot (OpenAI)
CLOUDINARY_CLOUD_NAME Cloudinary media storage
CLOUDINARY_API_KEY Cloudinary media storage
CLOUDINARY_API_SECRET Cloudinary media storage

Database connection settings live in src/main/resources/META-INF/persistence.xml, and SMTP settings in src/main/resources/mail.properties. Initialize the database schema from src/main/resources/sql/sqlDevtools.sql.

Getting Started

Backend

# Build the WAR
mvn clean package

# The artifact is produced at target/DeveloperToolsApiProject-1.0-SNAPSHOT.war
# Deploy it to your servlet container (e.g. Tomcat's webapps/ directory).

Frontend

cd FrontEnd
npm install
npm run dev      # start the Vite dev server
npm run build    # produce a production build

API Overview

All backend endpoints are served under /api unless noted otherwise.

Area Base path Notable endpoints
Authentication /api/auth signup, login, logout, me, request-otp, verify-otp, reset-password
URL shortener /api/url POST /shorten, GET /{code}
QR codes /api/qr POST / (generate QR image)
Image → PDF /api/ImgToPdf POST /single, POST /multiple
Word → PDF /convert POST /
PDF compression /api/pdf POST /compress
Password generator /api/password POST /generate
AI chatbot /api/chat POST /
Contact mail /api POST /contact
Usage tracking /api/usage POST /track
Dashboard /api/dashboard GET /me, GET /usage-summary

Features

  • Authentication — sign up, log in, log out, and password reset via email OTP, with bcrypt-hashed passwords.
  • URL shortener — generate short codes and redirect by code.
  • QR code generator — turn text/URLs into downloadable QR images.
  • Document conversion — image-to-PDF (single & batch) and Word-to-PDF.
  • PDF compression — reduce PDF file size.
  • Password & UUID generators — quick credential and identifier helpers.
  • AI chatbot — conversational assistant backed by Gemini/OpenAI.
  • Contact form — sends messages by email.
  • Usage dashboard — per-user tracking and usage summaries with charts.

Notes

  • All front-end code lives in the FrontEnd/ folder.
  • pom.xml contains the backend dependency configuration.

About

All-in-one developer toolbox — URL shortener, QR code generator, PDF & document converters, password generator, and an AI chatbot, built with Spring MVC and React.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 64.0%
  • Java 35.4%
  • Other 0.6%