Context
Existing survey platforms like Google Forms have limitations: rigid templates, limited customisation, and basic analytics. This project was an opportunity to understand how these systems work from the ground up - building every layer from servlet request handling to SQL schema design to frontend UI - while addressing the specific gaps users report with existing tools.
Objective
Build a web-based survey platform from scratch using Java Servlets and JSP - supporting template selection, custom question creation, link sharing, real-time response collection, and dashboard analytics - with simpler, more intuitive UX than existing solutions.
Key Contributions
User & Auth Module
User registration, login, and profile management. Session management via Java servlet filters. Admin dashboard for platform oversight. Password hashing for secure credential storage.
Template Selection
Pre-built survey templates for common use cases: feedback, research, event registration, NPS. Users select a template as a starting point and customise - reducing creation time vs. starting blank.
Form Builder
Drag-and-drop style question editor supporting multiple choice, checkboxes, short text, paragraph, linear scale, and rating questions. Themes and branding per survey - logo, colours, custom thank-you message.
Link Generation & Sharing
Each survey gets a unique shareable URL. Configurable response limits, closing dates, and password protection for restricted surveys. One-click copy and email share functionality.
Real-Time Response Dashboard
Response data visualised in real-time as submissions come in - bar charts for multiple choice, word clouds for text, numerical distributions for scale questions. CSV export for offline analysis.
Data Management
Responses stored with timestamps, user agent, and optional respondent identifier. Creators can view individual responses or aggregated views. Completed surveys archived, not deleted - data preserved.
Technologies
| Category | Details |
|---|---|
| Language | Java - core application logic, servlet processing |
| Web Tech | Java Servlets + JSP - HTTP request handling, server-side rendering |
| Database | MySQL - survey definitions, responses, user accounts |
| Frontend | HTML / CSS / JavaScript - responsive, accessible survey UI |
| Session Mgmt | Java Servlet Filters - authentication, session validation |
| Analytics | Server-side aggregation + Chart.js - real-time response visualisation |
Impact
- Full survey lifecycle implemented - from template selection to analytics export
- Real-time response dashboard updates without page refresh (polling-based)
- Multiple question types with per-survey theming and branding
- Cleaner UX than Google Forms for the core creation and sharing workflow
Conclusion
The Online Survey System was an exercise in building something familiar from scratch - which forces you to understand every layer. Implementing session management, form validation, SQL schema design, and response aggregation in raw Java without a full framework taught me what frameworks are actually doing under the hood. That foundation made later framework-based development much more informed.