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