The fastest way to visualize complex JSON structures.
No configuration needed - just paste, connect, or upload your data.
LumiVizStack is a full-stack web application that converts raw JSON data into beautiful, interactive charts and visualizations. Built with the MERN stack, it supports multiple input methods, secure JWT authentication, visualization history, and public shareable links โ all in one unified platform.
Developed as part of the B.E. Computer Engineering final internship project at Sal Engineering and Technical Institute, Ahmedabad (Gujarat Technological University, 2025โ26).
- Multi-Source JSON Input โ Paste raw JSON, upload a
.jsonfile, or fetch from an external API URL - Interactive Visualizations โ Bar, Line, Area, and Pie charts with real-time rendering
- Secure Authentication โ JWT-based login/register with bcrypt password hashing and 30-day token sessions
- Role-Based Access Control (RBAC) โ Separate User and Admin roles with distinct permissions
- Visualization History โ Save up to 10 visualizations per user; soft-delete support
- Public Shareable Links โ Generate unique public URLs to share specific visualizations without login
- Admin Panel โ Manage users, view system stats, configure login/signup access, and handle deletions
- Credits System โ Usage tracked via a credit mechanism per visualization save
- Responsive UI โ Clean, responsive design built with Tailwind CSS
| Layer | Technology |
|---|---|
| Frontend | React.js, Tailwind CSS, React Router DOM, Recharts |
| Backend | Node.js, Express.js |
| Database | MongoDB, Mongoose ODM |
| Authentication | JSON Web Token (JWT), bcrypt |
| Build Tool | Vite |
| Deployment | Vercel |
| Dev Tools | Postman, ESLint, VS Code, Git & GitHub |
- Node.js v18+
- MongoDB (local or Atlas)
- npm or yarn
git clone https://github.com/krupal-036/LumiVizStack.git
cd LumiVizStackcd backend
npm installCreate a .env file in the backend/ directory:
PORT=3000
MONGO_URI=mongodb_url
DB_USERS=lumiviz_users_db_example
DB_ADMIN=lumiviz_admin_db_example
DB_VIZ_CONTEXT=lumiviz_viz_public_db_example
DB_VIZ_HISTORY=lumiviz_viz_history_db_example
JWT_SECRET=your_jwt_secret_key
NODE_ENV=developmentStart the backend server:
npm startcd ../frontend
npm installCreate a .env file in the frontend/ directory:
mode=development
VITE_ENABLE_PROXY=true
VITE_API_URL=http://localhost:5000Start the development server:
npm run devThe app will be available at http://localhost:5173.
LumiVizStack/
โ
โโโ frontend/
โ โโโ public/
โ โโโ src/
โ โ โ
โ โ โโโ components/
โ โ โ โโโ common/
โ โ โ โ โโโ AdminRoute.jsx
โ โ โ โ โโโ BackToTop.jsx
โ โ โ โ โโโ Button.jsx
โ โ โ โ โโโ Loader.jsx
โ โ โ โ โโโ Modal.jsx
โ โ โ โ โโโ ProtectedRoute.jsx
โ โ โ โ โโโ SmartCell.jsx
โ โ โ โ
โ โ โ โโโ layout/
โ โ โ โ โโโ Footer.jsx
โ โ โ โ โโโ Navbar.jsx
โ โ โ โ
โ โ โ โโโ visualizations/
โ โ โ โ โโโ CardView.jsx
โ โ โ โ โโโ ChartView.jsx
โ โ โ โ โโโ FlowChart.jsx
โ โ โ โ โโโ GraphView.jsx
โ โ โ โ โโโ TableView.jsx
โ โ โ โ โโโ TreeView.jsx
โ โ โ โโโ Features.jsx
โ โ โ
โ โ โโโ context/
โ โ โ โโโ AlertContext.jsx
โ โ โ โโโ AuthContext.jsx
โ โ โ โโโ ThemeContext.jsx
โ โ โ โโโ VizContext.jsx
โ โ โ
โ โ โโโ hooks/
โ โ โ โโโ customHooks.jsx
โ โ โ โโโ useFetch.js
โ โ โ โโโ useTheme.js
โ โ โ
โ โ โโโ pages/
โ โ โ โโโ About.jsx
โ โ โ โโโ AdminPanel.jsx
โ โ โ โโโ ApiDocs.jsx
โ โ โ โโโ Dashboard.jsx
โ โ โ โโโ Guide.jsx
โ โ โ โโโ History.jsx
โ โ โ โโโ Login.jsx
โ โ โ โโโ NotFound.jsx
โ โ โ โโโ PublicView.jsx
โ โ โ โโโ Register.jsx
โ โ โ โโโ UserProfile.jsx
โ โ โ โโโ Visualizer.jsx
โ โ โ
โ โ โโโ utils/
โ โ โ โโโ dataParser.js
โ โ โ โโโ mockData.js
โ โ โ
โ โ โโโ App.css
โ โ โโโ App.jsx
โ โ โโโ index.css
โ โ โโโ main.jsx
โ โ
โ โโโ .env
โ โโโ .env_EXAMPLE
โ โโโ eslint.config.js
โ โโโ index.html
โ โโโ package-lock.json
โ โโโ package.json
โ โโโ vite.config.js
โ
โโโ middleware/
โ โโโ adminAuth.js
โ โโโ apiLimiter.js
โ โโโ authValidation.js
โ โโโ config.js
โ โโโ serveFrontend.js
โ โโโ siteGuard.js
โ โโโ verifyToken.js
โ
โโโ models/
โ โโโ History.js
โ โโโ SystemSettings.js
โ โโโ User.js
โ
โโโ routes/
โ โโโ admin.js
โ โโโ auth.js
โ โโโ history.js
โ โโโ profile.js
โ
โโโ public/
โ
โโโ .env
โโโ .env_EXAMPLE
โโโ .gitignore
โโโ data.json
โโโ db.js
โโโ index.js
โโโ package-lock.json
โโโ package.json
โโโ README.md
โโโ vercel.json
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
| POST | /api/auth/register |
Register new user | โ |
| POST | /api/auth/login |
Login & receive JWT | โ |
| GET | /api/history |
Get user's saved visualizations | โ |
| POST | /api/history |
Save a new visualization | โ |
| DELETE | /api/history/:id |
Soft-delete a visualization | โ |
| GET | /api/history/share/:shareId |
Access public visualization | โ |
| GET | /api/admin/users |
List all users | โ Admin |
| PATCH | /api/admin/settings |
Toggle login/signup access | โ Admin |
Rate limits: 5 requests/window on auth routes, 100 requests/window on all other routes.
username, email, password (hashed), credits, role (user/admin), isDeleted, createdAt
userId (ref: User), title, type, data, rawInput, urlInput, inputType,
isPublic, shareId, isDeleted, createdAt
configName, isLoginEnabled, isSignupEnabled, createdAt
20 test cases verified covering registration, login, JSON validation, visualization save/share/delete, admin controls, rate limiting, credit enforcement, and access control. All tests passed.
- Supports structured JSON only (no CSV, XML, etc.)
- Maximum 10 saved visualizations per user (credit-based)
- Performance may degrade for very large JSON inputs
- Limited to 4 chart types (Bar, Line, Area, Pie)
- Requires internet connection for API URL input mode
- More chart types: flowcharts, treemaps, dashboards
- Real-time data streaming and live updates
- Collaborative visualization editing
- CSV / XML support in addition to JSON
- Pagination and data limiting for large datasets
Krupal Fataniya
B.E. Computer Engineering โ Enrollment No. 231263107010
Sal Engineering and Technical Institute, Ahmedabad
Gujarat Technological University | Academic Year 2025โ26
ยฉ 2026 LumiVizStack ยท Built with precision for developers.
โญ If you found this useful, please consider starring the repository!