A community-driven digital archive for preserving rural cultural heritage. Parampara connects traditions with the world through interactive maps, audio stories, visual galleries, and responsible tourism.
- Cultural Mapping: Interactive map-based exploration of rural villages and their unique traditions
- Audio Stories: Record and preserve oral histories from village elders
- Visual Archive: Gallery of traditional crafts (Kantha, Madhubani, Dokra) with detailed descriptions
- Heritage Paths: Curated guided journeys that connect stories and traditions across villages
- Discovery Quest: Gamified learning with scavenger hunts and digital badges
- AI Chat Interface: Talk to an AI curator about rural traditions and stories
- Heritage Trails: Plan responsible visits, connect with local hosts, and support artisans
- GPS Check-in: Physical-to-digital badges for village visits
- Live Updates: Real-time posts from villages about festivals and events
- Heatmap Visualization: See cultural activity intensity across regions
- Ambient Sounds: Immersive audio experience when exploring villages
- Digital Passports: Track your cultural exploration journey
- Responsible Travel Guide: Dos and Don'ts for respectful cultural visits
- Node.js (v14 or higher)
- npm (Node Package Manager)
-
Clone or navigate to the project directory
cd Parampara -
Install dependencies
npm install
-
Configure environment variables
Copy
.env.exampleto.envand add your MapTiler API key (free at maptiler.com):cp .env.example .env
PORT=3000 MAPTILER_KEY=your_key
The map page loads without a key and shows setup instructions. Add a MapTiler key to enable interactive map tiles, village markers, and heatmap overlays.
-
Start the server
npm start
For development with auto-reload:
npm run dev
-
Open your browser Navigate to
http://localhost:3000
Parampara/
โโโ server.js # Express server and API routes
โโโ package.json # Dependencies and scripts
โโโ README.md # This file
โโโ public/ # Frontend files
โโโ index.html # Home page
โโโ map.html # Interactive map page
โโโ gallery.html # Visual archive gallery
โโโ paths.html # Heritage paths
โโโ quest.html # Discovery quest
โโโ trails.html # Heritage trails & local hosts
โโโ chat.html # AI chat interface
โโโ styles/ # CSS stylesheets
โ โโโ main.css # Main styles
โ โโโ map.css # Map page styles
โ โโโ gallery.css # Gallery styles
โ โโโ paths.css # Paths styles
โ โโโ quest.css # Quest styles
โ โโโ trails.css # Trails styles
โ โโโ chat.css # Chat styles
โโโ scripts/ # JavaScript files
โโโ main.js # Home page logic
โโโ map.js # Map functionality
โโโ gallery.js # Gallery functionality
โโโ paths.js # Paths functionality
โโโ quest.js # Quest functionality
โโโ trails.js # Trails functionality
โโโ chat.js # Chat functionality
- Frontend: HTML5, CSS3, JavaScript (ES6+)
- Backend: Node.js, Express.js
- Mapping: MapLibre GL JS, MapTiler
- Styling: Custom CSS with modern design principles
Explore villages on an interactive map. Click on markers to learn about traditions, festivals, and crafts. Toggle heatmap view to see cultural activity intensity.
Browse and contribute to a gallery of traditional crafts. Each item includes descriptions, locations, and tags for easy discovery.
Follow curated journeys that tell a story. Paths connect multiple cultural items in a narrative sequence, complete with audio and images.
Engage in scavenger hunts to unlock digital badges. Complete objectives by exploring the archive and visiting villages.
Plan responsible visits to villages. Get contact information for local hosts, learn dos and don'ts, and find route information.
Ask questions about rural traditions, crafts, festivals, and stories. The AI curator draws from the archive to provide answers.
| Category | Description |
|---|---|
| โ๏ธ Fix Typos | Improve writing and fix documentation errors |
| ๐จ Design | Make it look better and prettier |
| ๐ Content | Add new guides and tutorials |
| ๐ Bugs | Find and fix bugs in the code |
| ๐ก Ideas | Share awesome ideas for new features |
The visual gallery API retrieves cultural heritage items from the archive. It supports pagination, search, sorting, filtering, and request validation.
Retrieves a paginated list of gallery items matching search and filter criteria.
| Parameter | Type | Required | Description | Validation |
|---|---|---|---|---|
page |
Integer | No | The page index to fetch (default: 1). |
Must be > 0. |
limit |
Integer | No | Number of items per page (default: 12). |
Must be > 0 and <= 100. |
search |
String | No | Search term matching craft title, description, location, or tags. | Must be a string. |
craft |
String | No | Filter items matching the craft name. | Must be a string. |
state |
String | No | Filter items matching the state name (e.g. Bihar, West Bengal). |
Must be a string. |
tag |
String | No | Filter items matching a specific tag (e.g. embroidery, metalwork). |
Must be a string. |
sort |
String | No | Order of returned items. | One of: latest (newest first), oldest, name (A-Z), name_desc (Z-A). |
GET /api/gallery?search=kantha&state=West Bengal&sort=latest&page=1&limit=2{
"success": true,
"data": [
{
"id": "1",
"title": "Kantha Embroidery Patterns",
"type": "visual",
"location": "Kantha Village, Bengal",
"coordinates": [22.5726, 88.3639],
"description": "Traditional Kantha embroidery using running stitch on layered vintage saris.",
"tags": ["embroidery", "textile"],
"year": 1950,
"timestamp": "2026-07-05T11:23:20.000Z"
}
],
"pagination": {
"page": 1,
"limit": 2,
"totalItems": 1,
"totalPages": 1
}
}{
"success": false,
"message": "Page must be greater than 0"
}git checkout -b feature/your-feature-nameImplement your updates following project guidelines.
Ensure everything works correctly before committing.
git add .
git commit -m "Brief description of your changes"git push origin feature/your-feature-nameGo to GitHub and click "Create Pull Request". Done! ๐
Read the Contributors Guide for detailed instructions.
If this project inspired you or helped in any way โ do leave a โญ
It keeps us going and growing!
MIT License - feel free to use this project for learning and development.
Parampara is designed to preserve the rich cultural heritage of rural communities. Special thanks to all the communities and artisans who keep these traditions alive.
Preserving rural heritage, one story at a time.