Skip to content

Commit cf01597

Browse files
2 parents b67a123 + fc33483 commit cf01597

2 files changed

Lines changed: 176 additions & 0 deletions

File tree

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: Chemnitz culture action
2+
3+
on:
4+
push:
5+
branches: [ "master" ]
6+
pull_request:
7+
branches: [ "master" ]
8+
workflow_dispatch:
9+
10+
jobs:
11+
build:
12+
runs-on: ubuntu-latest
13+
steps:
14+
- uses: actions/checkout@v2
15+
16+
- name: Install dependencies
17+
run: npm install
18+
19+
- name: Run lint
20+
run: npm run lint
21+
22+
- name: Run tests
23+
run: npm test

README.md

Lines changed: 153 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,153 @@
1+
# 🌍 Chemnitz Cultural Explorer
2+
3+
[![Node.js Version](https://img.shields.io/badge/node-%3E%3D18.0-blue)](https://nodejs.org/)
4+
[![PostgreSQL Version](https://img.shields.io/badge/postgresql-%3E%3D14.0-blue)](https://www.postgresql.org/)
5+
6+
![App Preview](public/images/app-preview.gif)
7+
8+
An interactive web platform showcasing cultural landmarks in Chemnitz, Germany, powered by open data sources with personalized touring features.
9+
10+
## ✨ Key Features
11+
12+
### 🗺️ Exploration Tools
13+
- Interactive map with 150+ cultural sites
14+
- Custom categories: Museums, Theaters, Public Art, Historic Sites
15+
- Real-time filtering by:
16+
- Distance from current location
17+
- Categories
18+
- Keyword based search
19+
20+
### 👤 User Experience
21+
- **Personalized Accounts**:
22+
- Display places data on mapbox
23+
- Save favorite locations
24+
- Create User account
25+
- List of favorite sites
26+
- Display details of saved sites and sites
27+
28+
### 🚀 Technical Highlights
29+
- Offline-first PWA support
30+
- Optimized routing algorithms
31+
- Accessibility compliant (WCAG 2.1 AA)
32+
33+
## 🛠️ Technology Stack
34+
35+
### Frontend
36+
| Technology | Version | Purpose |
37+
|------------|---------|---------|
38+
| Next.js 15 | React Framework |
39+
| Mapbox GL JS | Interactive Maps |
40+
| Tailwind CSS | Utility-first CSS |
41+
| React Query | Data Fetching |
42+
43+
### Backend
44+
| Technology | Version | Purpose |
45+
|------------|---------|---------|
46+
| Node.js | Runtime |
47+
| Express | API Server |
48+
| PostgreSQL | Database |
49+
| PostGIS |
50+
| Prisma | ORM |
51+
52+
### DevOps
53+
| Technology | Purpose |
54+
|------------|---------|
55+
| Docker | Containerization |
56+
| GitHub | Git |
57+
| Git | Error Monitoring |
58+
59+
## 🚀 Getting Started
60+
61+
### Prerequisites
62+
- Node.js 18+
63+
- PostgreSQL 14+ with PostGIS extension
64+
- Mapbox API key
65+
66+
### Installation
67+
68+
1. **Clone the repository**
69+
```bash
70+
git clone https://github.com/Syed-Bilal-Haider-Engineer/chemnitz-culture
71+
cd chemnitz-culture
72+
cd client
73+
cd server
74+
Set up environment variables
75+
76+
bash
77+
cp .env.example .env.local
78+
# Edit the file with your credentials
79+
Install dependencies
80+
81+
First, run the development server:
82+
83+
```bash
84+
npm run dev
85+
# or
86+
yarn dev
87+
# or
88+
pnpm dev
89+
# or
90+
bun dev
91+
```
92+
93+
bash
94+
# Run migrations
95+
npm run db:migrate
96+
97+
# Seed initial data
98+
npm run db:seed
99+
Running the Application
100+
Development Mode
101+
102+
bash
103+
npm run dev
104+
Production Build
105+
106+
bash
107+
npm run build
108+
npm start
109+
📂 Project Structure
110+
text
111+
.
112+
├── app/ # Next.js app router
113+
│ ├── (auth)/ # Authentication routes
114+
│ ├── (_lib) # API routes
115+
├── components/ # Reusable components
116+
│ ├── layout/ # Layouts
117+
│ └── common/ # Reuseabliity
118+
119+
├── public/ # Static assets
120+
├── styles/ # Global styles
121+
└── types/ # TypeScript definitions
122+
🌐 API Documentation
123+
Base URL
124+
https://api.chemnitz-culture.com/v1
125+
126+
Key Endpoints
127+
Endpoint Method Description Auth Required
128+
/places GET List all cultural sites No
129+
/api/search GET Search with filters No
130+
/favorites POST Add favorite Yes
131+
/reviews POST Create route Yes
132+
View Complete API Documentation →
133+
134+
🔒 Security Features
135+
JWT Authentication
136+
137+
Role-based access control
138+
139+
Data encryption at rest
140+
141+
Automated security headers
142+
143+
🚴 Performance
144+
Metric Value Target
145+
LCP 1.2s <2.5s
146+
TTI 1.8s <3.5s
147+
Bundle Size 145kB <200kB
148+
📱 Offline Support
149+
Service Worker caching (Workbox)
150+
151+
Localstorage for local data
152+
153+
Background sync for updates

0 commit comments

Comments
 (0)