Skip to content

Syed-Bilal-Haider-Engineer/GeoJSON-Web-Application

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🌍 GeoJSON Explorer

Node.js Version PostgreSQL Version

App Preview

An interactive web platform showcasing cultural landmarks in Chemnitz, Germany, powered by open data sources with personalized touring features.

✨ Key Features

🗺️ Exploration Tools

  • Interactive map with 150+ cultural sites
  • Custom categories: Museums, Theaters, Public Art, Historic Sites
  • Real-time filtering by:
    • Distance from current location
    • Categories
    • Keyword based search

👤 User Experience

  • Personalized Accounts:
    • Display places data on mapbox
    • Save favorite locations
    • Create User account
    • List of favorite sites
    • Display details of saved sites and sites

🚀 Technical Highlights

  • Offline-first PWA support
  • Optimized routing algorithms
  • Accessibility compliant (WCAG 2.1 AA)

🛠️ Technology Stack

Frontend

Technology Version Purpose
Next.js 15 React Framework
Mapbox GL JS Interactive Maps
Tailwind CSS Utility-first CSS
React Query Data Fetching

Backend

Technology Version Purpose
Node.js Runtime
Express API Server
PostgreSQL Database
PostGIS
Prisma ORM

DevOps

Technology Purpose
Docker Containerization
GitHub Git
Git Error Monitoring

🚀 Getting Started

Prerequisites

  • Node.js 18+
  • PostgreSQL 14+ with PostGIS extension
  • Mapbox API key

Installation

  1. Clone the repository
    git clone https://github.com/Syed-Bilal-Haider-Engineer/chemnitz-culture
    cd chemnitz-culture
    cd client
    cd server

Set up environment variables

bash cp .env.example .env.local

Edit the file with your credentials

Install dependencies

First, run the development server:

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

bash

Run migrations

npm run db:migrate

Seed initial data

npm run db:seed Running the Application Development Mode

bash npm run dev Production Build

bash npm run build npm start 📂 Project Structure text . ├── app/ # Next.js app router │ ├── (auth)/ # Authentication routes │ ├── (_lib) # API routes ├── components/ # Reusable components │ ├── layout/ # Layouts │ └── common/ # Reuseabliity

├── public/ # Static assets ├── styles/ # Global styles └── types/ # TypeScript definitions 🌐 API Documentation Base URL https://api.chemnitz-culture.com/v1

Key Endpoints Endpoint Method Description Auth Required /places GET List all cultural sites No /api/search GET Search with filters No /favorites POST Add favorite Yes /reviews POST Create route Yes View Complete API Documentation →

🔒 Security Features JWT Authentication

Role-based access control

Data encryption at rest

Automated security headers

🚴 Performance Metric Value Target LCP 1.2s <2.5s TTI 1.8s <3.5s Bundle Size 145kB <200kB 📱 Offline Support Service Worker caching (Workbox)

Localstorage for local data

Background sync for updates

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors