Skip to content

Ramcharxn/Mapping-Analyzing-Participation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

12 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

NetworkMap - Event Network Visualization Platform

A full-stack web application for collecting, analyzing, and visualizing participant connections from events. Transform survey responses into interactive network graphs and analytics dashboards.

image

๐ŸŒŸ Features

For Event Organizers (Admins)

  • ๐Ÿ“ 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

For Participants

  • ๐ŸŒ 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

Educational Content

  • Interactive learning modules about network analysis
  • Step-by-step guides for creating forms and analyzing data
  • Best practices for event network mapping

๐Ÿ› ๏ธ Tech Stack

Frontend

  • React - UI framework
  • React Router - Navigation
  • Recharts - Data visualization
  • Country-State-City - Location data
  • PapaParse - CSV parsing
  • Axios - HTTP client

Backend

  • Node.js + Express - Server framework
  • MongoDB + Mongoose - Database
  • JWT - Authentication
  • Bcrypt - Password hashing
  • CORS - Cross-origin support

Deployment

  • Netlify - Frontend hosting
  • Render - Backend hosting
  • MongoDB Atlas - Database hosting

๐Ÿ“ฆ Installation

Prerequisites

  • Node.js (v14 or higher)
  • MongoDB (local or Atlas account)
  • Git

1. Clone the Repository

git clone https://github.com/kishuxz/info_viz.git
cd info_viz/event-network-template

2. Install Dependencies

Install frontend dependencies:

npm install

Install backend dependencies:

cd backend
npm install
cd ..

3. Configure Environment Variables

Backend (.env in /backend folder):

MONGODB_URI=your_mongodb_connection_string
JWT_SECRET=your_secure_random_string
NODE_ENV=development
PORT=5001

Frontend (.env in root folder):

REACT_APP_API_URL=http://localhost:5001/api

Note: Copy .env.example files and rename them to .env, then fill in your values.

4. Start the Application

Terminal 1 - Start Backend:

cd backend
npm start

Terminal 2 - Start Frontend:

npm start

Frontend runs on: http://localhost:3000
Backend runs on: http://localhost:5001

๐Ÿš€ Deployment Guide

Deploy Backend to Render

  1. Create a Render account at render.com
  2. Create a new Web Service connected to your GitHub repo
  3. Configure settings:
    • Root Directory: backend
    • Build Command: npm install
    • Start Command: npm start
    • Environment: Node
  4. Add environment variables:
    MONGODB_URI=your_mongodb_atlas_uri
    JWT_SECRET=your_secure_secret
    NODE_ENV=production
    PORT=5001
    
  5. Deploy and note your backend URL (e.g., https://your-app.onrender.com)

Deploy Frontend to Netlify

  1. Create a Netlify account at netlify.com
  2. Import your GitHub repository
  3. Configure build settings:
    • Build command: npm run build
    • Publish directory: build
  4. Add environment variable:
    REACT_APP_API_URL=https://your-backend-url.onrender.com/api
    
  5. Deploy and get your live URL

MongoDB Atlas Setup

  1. Create account at mongodb.com/cloud/atlas
  2. Create a cluster (free tier available)
  3. Create database user with password
  4. Whitelist IP addresses:
    • For Render: Add 0.0.0.0/0 (allows all IPs)
    • For local dev: Add your IP
  5. Get connection string and add to your .env files

๐Ÿ“– Usage

As an Admin

  1. Sign Up/Login - Create an admin account
  2. 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
  3. Share Form - Send the form URL to event participants
  4. View Analytics - Check the Analytics page for:
    • Participant demographics
    • Connection statistics
    • Network visualizations
  5. Export Data - Download CSV for network analysis tools

As a Participant

  1. Open Form Link - Click the URL shared by organizer
  2. Fill Details:
    • Personal information
    • Organization details
    • Location (country โ†’ state โ†’ city)
  3. Add Connections - Record up to 5 organizational connections
  4. Submit - Your data is securely saved

๐Ÿ”’ Security Features

  • โœ… Password hashing with bcrypt
  • โœ… JWT-based authentication
  • โœ… Token blacklisting on logout
  • โœ… Environment variable protection
  • โœ… CORS configuration
  • โœ… Input validation and sanitization

๐Ÿ“ Project Structure

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

๐Ÿค Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“ License

This project is open source and available under the MIT License.

๐Ÿ› Known Issues

  • 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

๐Ÿ”ฎ Future Enhancements

  • Real-time collaboration on forms
  • Advanced network metrics (betweenness, closeness)
  • Interactive D3.js network visualization
  • Multi-language support
  • Email notifications
  • Role-based access control

๐Ÿ“ง Support

๐Ÿ™ Acknowledgments

Built for event organizers, researchers, and community builders who want to understand and visualize organizational networks.


Made with โค๏ธ for the open-source community

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published