A lightweight Google Forms alternative built with Flask and Firebase. Create public forms in a few clicks and collect responses in real time.
π Live Demo: https://datasnap.onrender.com
π¦ Repository: https://github.com/sheikhwasimuddin/DataSnap
- User Authentication β Sign up, log in, and password reset via Firebase Auth with email verification
- Form Builder β Create and edit forms with custom fields from a dashboard
- Public Sharing β Each form gets a unique public URL anyone can submit
- Response Collection β Submissions are stored in Firebase Realtime Database with timestamps
- Toggle Responses β Enable or disable form submissions at any time
- Admin Dashboard β View and manage all your forms in one place
- Form Deletion β Remove forms you no longer need
| Layer | Technology |
|---|---|
| Backend | Flask, Gunicorn |
| Database | Firebase Realtime Database |
| Auth | Firebase Authentication |
| Frontend | Jinja2 Templates, HTML/CSS |
| Hosting | Render |
βββ app.py # Main Flask application and routes
βββ definitions.py # Day/month name mappings
βββ wsgi.py # WSGI entry point
βββ build.sh # Render build script
βββ requirements.txt # Python dependencies
βββ templates/ # Jinja2 HTML templates
β βββ index.html # Login page
β βββ signup.html # Registration page
β βββ dashboard.html # User dashboard
β βββ form.html # Public form view
β βββ temp_form.html # Form editor
β βββ ...
βββ static/ # Static assets
- Python 3.11+
- A Firebase project with Realtime Database and Authentication enabled
Create a .env file in the project root:
FIREBASE_APIKEY=your_api_key
FIREBASE_AUTHDOMAIN=your_project.firebaseapp.com
FIREBASE_DATABASEURL=https://your_project.firebaseio.com
FIREBASE_PROJECT_ID=your_project_id
FIREBASE_STORAGE_BUCKET=your_project.appspot.com
FIREBASE_MESSAGING_SENDER_ID=your_sender_id
FIREBASE_APP_ID=your_app_id
FIREBASE_MEASUREMENT_ID=your_measurement_id
SESSION_SECRET_KEY=your_secret_keypip install -r requirements.txt
python wsgi.pyThe app will run at http://localhost:5000.
- Push the repo to GitHub
- Create a new Web Service on Render
- Set the following:
- Build Command:
chmod +x build.sh && ./build.sh - Start Command:
gunicorn app:app
- Build Command:
- Add all environment variables from the
.envsection above - Deploy
This project is open source.
Made by sheikhwasimuddin