A full-stack web application for collecting, analyzing, and visualizing participant connections from events. Transform survey responses into interactive network graphs and analytics dashboards.
- ๐ Dynamic Form Builder: Create custom event forms with built-in participant and connection fields
- ๐ Analytics Dashboard: Visualize participant demographics, connections, and network metrics
- ๐ Data Export: Export responses to CSV for use in Gephi, Kumu, or other network analysis tools
- ๐จ Network Conversion: Automatically generate nodes and edges files from form responses
- ๐ Smart Location Selection: Country โ State โ City cascading dropdowns
- ๐ Connection Tracking: Record up to 5 organizational connections per participant
- ๐ฑ Responsive Design: Mobile-friendly form interface
- โ Data Validation: Built-in validation for emails, phone numbers, and required fields
- Interactive learning modules about network analysis
- Step-by-step guides for creating forms and analyzing data
- Best practices for event network mapping
- React - UI framework
- React Router - Navigation
- Recharts - Data visualization
- Country-State-City - Location data
- PapaParse - CSV parsing
- Axios - HTTP client
- Node.js + Express - Server framework
- MongoDB + Mongoose - Database
- JWT - Authentication
- Bcrypt - Password hashing
- CORS - Cross-origin support
- Netlify - Frontend hosting
- Render - Backend hosting
- MongoDB Atlas - Database hosting
- Node.js (v14 or higher)
- MongoDB (local or Atlas account)
- Git
git clone https://github.com/kishuxz/info_viz.git
cd info_viz/event-network-templateInstall frontend dependencies:
npm installInstall backend dependencies:
cd backend
npm install
cd ..Backend (.env in /backend folder):
MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_secure_random_string
NODE_ENV=development
PORT=5001Frontend (.env in root folder):
REACT_APP_API_URL=http://localhost:5001/apiNote: Copy
.env.examplefiles and rename them to.env, then fill in your values.
Terminal 1 - Start Backend:
cd backend
npm startTerminal 2 - Start Frontend:
npm startFrontend runs on: http://localhost:3000
Backend runs on: http://localhost:5001
- Create a Render account at render.com
- Create a new Web Service connected to your GitHub repo
- Configure settings:
- Root Directory:
backend - Build Command:
npm install - Start Command:
npm start - Environment: Node
- Root Directory:
- Add environment variables:
MONGODB_URI=your_mongodb_atlas_uri JWT_SECRET=your_secure_secret NODE_ENV=production PORT=5001 - Deploy and note your backend URL (e.g.,
https://your-app.onrender.com)
- Create a Netlify account at netlify.com
- Import your GitHub repository
- Configure build settings:
- Build command:
npm run build - Publish directory:
build
- Build command:
- Add environment variable:
REACT_APP_API_URL=https://your-backend-url.onrender.com/api - Deploy and get your live URL
- Create account at mongodb.com/cloud/atlas
- Create a cluster (free tier available)
- Create database user with password
- Whitelist IP addresses:
- For Render: Add
0.0.0.0/0(allows all IPs) - For local dev: Add your IP
- For Render: Add
- Get connection string and add to your
.envfiles
- Sign Up/Login - Create an admin account
- Create a Form - Go to Admin Dashboard โ Create Form
- Set event name and date
- Add custom fields if needed
- Save and get shareable form URL
- Share Form - Send the form URL to event participants
- View Analytics - Check the Analytics page for:
- Participant demographics
- Connection statistics
- Network visualizations
- Export Data - Download CSV for network analysis tools
- Open Form Link - Click the URL shared by organizer
- Fill Details:
- Personal information
- Organization details
- Location (country โ state โ city)
- Add Connections - Record up to 5 organizational connections
- Submit - Your data is securely saved
- โ Password hashing with bcrypt
- โ JWT-based authentication
- โ Token blacklisting on logout
- โ Environment variable protection
- โ CORS configuration
- โ Input validation and sanitization
event-network-template/
โโโ backend/ # Node.js backend
โ โโโ controllers/ # Request handlers
โ โโโ models/ # Mongoose schemas
โ โโโ routes/ # API routes
โ โโโ middleware/ # Auth & validation
โ โโโ config/ # Database config
โ โโโ server.js # Entry point
โโโ src/ # React frontend
โ โโโ Components/ # React components
โ โโโ services/ # API services
โ โโโ utils/ # Helper functions
โ โโโ App.js # Main app component
โโโ public/ # Static assets
โโโ README.md # This file
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is open source and available under the MIT License.
- Free tier on Render may spin down after inactivity (cold starts)
- Large CSV exports may take time to process
- Network graph rendering limited to 1000 nodes for performance
- Real-time collaboration on forms
- Advanced network metrics (betweenness, closeness)
- Interactive D3.js network visualization
- Multi-language support
- Email notifications
- Role-based access control
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Built for event organizers, researchers, and community builders who want to understand and visualize organizational networks.
Made with โค๏ธ for the open-source community