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.
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
.
├── 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
- 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
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.
# 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).cd FrontEnd
npm install
npm run dev # start the Vite dev server
npm run build # produce a production buildAll 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 |
- 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.
- All front-end code lives in the
FrontEnd/folder. pom.xmlcontains the backend dependency configuration.