From 471d629a933e40f94704b509d48c65303cbddb10 Mon Sep 17 00:00:00 2001 From: Josh-Dev-Quest Date: Thu, 5 Mar 2026 14:35:35 +0100 Subject: [PATCH] Map page v1 --- backend/app.py | 110 +++++++------- backend/app2.py | 138 ----------------- backend/data/journeys.json | 48 ++++++ blog-posts.html | 0 journey.html | 17 --- map.html | 80 ---------- working_interactiv_map_with_marker.html | 189 ------------------------ 7 files changed, 102 insertions(+), 480 deletions(-) delete mode 100644 backend/app2.py delete mode 100644 blog-posts.html delete mode 100644 journey.html delete mode 100644 map.html delete mode 100644 working_interactiv_map_with_marker.html diff --git a/backend/app.py b/backend/app.py index f4882ab..0297c7b 100644 --- a/backend/app.py +++ b/backend/app.py @@ -1,27 +1,22 @@ from flask import Flask, request, jsonify from flask_cors import CORS - -# Initialize CORS -app = Flask(__name__) -CORS(app) import json import os from datetime import datetime app = Flask(__name__) +CORS(app) # Enable CORS for all routes -# Define the data directory +# Data directory and file DATA_DIR = 'data' +DATA_FILE = os.path.join(DATA_DIR, 'journeys.json') os.makedirs(DATA_DIR, exist_ok=True) -# Define the data file path -DATA_FILE = os.path.join(DATA_DIR, 'journeys.json') - -# Initialize journeys list +# In-memory store (loaded from file on startup) journeys = [] def load_journeys(): - """Load journeys from the data file.""" + """Load journeys from the JSON file.""" global journeys try: if os.path.exists(DATA_FILE): @@ -34,107 +29,110 @@ def load_journeys(): journeys = [] def save_journeys(): - """Save journeys to the data file.""" + """Save journeys to the JSON file.""" try: with open(DATA_FILE, 'w') as f: json.dump(journeys, f, indent=2) except Exception as e: print(f"Error saving journeys: {e}") -# Load journeys when the app starts +# Load existing journeys on startup load_journeys() +def get_next_id(): + """Return the next available ID (simple integer increment).""" + if not journeys: + return 1 + return max(j['id'] for j in journeys) + 1 + @app.route('/api/journeys', methods=['POST']) def create_journey(): """Create a new journey.""" data = request.get_json() - - if not data or 'name' not in data: - return jsonify({'error': 'Journey name is required'}), 400 - - # Create new journey + if not data: + return jsonify({'error': 'No data provided'}), 400 + + title = data.get('title') + if not title: + return jsonify({'error': 'Journey title is required'}), 400 + new_journey = { - 'id': len(journeys) + 1, - 'name': data['name'], + 'id': get_next_id(), + 'title': title, 'description': data.get('description', ''), - 'markers': data.get('markers', []), - 'createdAt': datetime.now().isoformat() + 'markers': data.get('markers', []), # list of marker objects + 'created_at': datetime.now().isoformat() } - + journeys.append(new_journey) save_journeys() - return jsonify(new_journey), 201 @app.route('/api/journeys', methods=['GET']) def get_journeys(): - """Get all journeys.""" + """Return all journeys.""" return jsonify(journeys) -@app.route('/api/journeys/', methods=['GET']) +@app.route('/api/journeys/', methods=['GET']) def get_journey(journey_id): - """Get a specific journey by ID.""" - journey = next((j for j in journeys if str(j['id']) == journey_id), None) - if journey: - return jsonify(journey) - return jsonify({'error': 'Journey not found'}), 404 + """Return a specific journey by ID.""" + journey = next((j for j in journeys if j['id'] == journey_id), None) + if journey is None: + return jsonify({'error': 'Journey not found'}), 404 + return jsonify(journey) - -@app.route('/api/journeys/', methods=['PUT']) +@app.route('/api/journeys/', methods=['PUT']) def update_journey(journey_id): """Update an existing journey.""" - journey = next((j for j in journeys if str(j['id']) == journey_id), None) - if not journey: + journey = next((j for j in journeys if j['id'] == journey_id), None) + if journey is None: return jsonify({'error': 'Journey not found'}), 404 - + data = request.get_json() - - # Update journey fields - if 'name' in data: - journey['name'] = data['name'] + if not data: + return jsonify({'error': 'No data provided'}), 400 + + # Update allowed fields + if 'title' in data: + journey['title'] = data['title'] if 'description' in data: journey['description'] = data['description'] if 'markers' in data: journey['markers'] = data['markers'] - + save_journeys() return jsonify(journey) -@app.route('/api/journeys/', methods=['DELETE']) +@app.route('/api/journeys/', methods=['DELETE']) def delete_journey(journey_id): """Delete a journey.""" global journeys - journey = next((j for j in journeys if str(j['id']) == journey_id), None) - if not journey: + journey = next((j for j in journeys if j['id'] == journey_id), None) + if journey is None: return jsonify({'error': 'Journey not found'}), 404 - - journeys = [j for j in journeys if str(j['id']) != int(journey_id)] + + journeys = [j for j in journeys if j['id'] != journey_id] save_journeys() - return jsonify({'message': 'Journey deleted successfully', 'journey': journey}) @app.route('/api/journeys/health', methods=['GET']) def health_check(): - """Health check endpoint.""" + """Simple health check endpoint.""" return jsonify({'status': 'healthy', 'timestamp': datetime.now().isoformat()}) @app.route('/') def index(): - """Serve the main HTML page.""" + """Root endpoint – just a welcome message.""" return ''' - - Journey Mapper - - - + Journey Mapper Backend -

Journey Mapper

-

Backend is running. Access API at /api/journeys

+

Journey Mapper API

+

Backend is running. Use /api/journeys endpoints.

''' if __name__ == '__main__': - app.run(debug=True, port=5000) + app.run(debug=True, port=5000) \ No newline at end of file diff --git a/backend/app2.py b/backend/app2.py deleted file mode 100644 index 0297c7b..0000000 --- a/backend/app2.py +++ /dev/null @@ -1,138 +0,0 @@ -from flask import Flask, request, jsonify -from flask_cors import CORS -import json -import os -from datetime import datetime - -app = Flask(__name__) -CORS(app) # Enable CORS for all routes - -# Data directory and file -DATA_DIR = 'data' -DATA_FILE = os.path.join(DATA_DIR, 'journeys.json') -os.makedirs(DATA_DIR, exist_ok=True) - -# In-memory store (loaded from file on startup) -journeys = [] - -def load_journeys(): - """Load journeys from the JSON file.""" - global journeys - try: - if os.path.exists(DATA_FILE): - with open(DATA_FILE, 'r') as f: - journeys = json.load(f) - else: - journeys = [] - except Exception as e: - print(f"Error loading journeys: {e}") - journeys = [] - -def save_journeys(): - """Save journeys to the JSON file.""" - try: - with open(DATA_FILE, 'w') as f: - json.dump(journeys, f, indent=2) - except Exception as e: - print(f"Error saving journeys: {e}") - -# Load existing journeys on startup -load_journeys() - -def get_next_id(): - """Return the next available ID (simple integer increment).""" - if not journeys: - return 1 - return max(j['id'] for j in journeys) + 1 - -@app.route('/api/journeys', methods=['POST']) -def create_journey(): - """Create a new journey.""" - data = request.get_json() - if not data: - return jsonify({'error': 'No data provided'}), 400 - - title = data.get('title') - if not title: - return jsonify({'error': 'Journey title is required'}), 400 - - new_journey = { - 'id': get_next_id(), - 'title': title, - 'description': data.get('description', ''), - 'markers': data.get('markers', []), # list of marker objects - 'created_at': datetime.now().isoformat() - } - - journeys.append(new_journey) - save_journeys() - return jsonify(new_journey), 201 - -@app.route('/api/journeys', methods=['GET']) -def get_journeys(): - """Return all journeys.""" - return jsonify(journeys) - -@app.route('/api/journeys/', methods=['GET']) -def get_journey(journey_id): - """Return a specific journey by ID.""" - journey = next((j for j in journeys if j['id'] == journey_id), None) - if journey is None: - return jsonify({'error': 'Journey not found'}), 404 - return jsonify(journey) - -@app.route('/api/journeys/', methods=['PUT']) -def update_journey(journey_id): - """Update an existing journey.""" - journey = next((j for j in journeys if j['id'] == journey_id), None) - if journey is None: - return jsonify({'error': 'Journey not found'}), 404 - - data = request.get_json() - if not data: - return jsonify({'error': 'No data provided'}), 400 - - # Update allowed fields - if 'title' in data: - journey['title'] = data['title'] - if 'description' in data: - journey['description'] = data['description'] - if 'markers' in data: - journey['markers'] = data['markers'] - - save_journeys() - return jsonify(journey) - -@app.route('/api/journeys/', methods=['DELETE']) -def delete_journey(journey_id): - """Delete a journey.""" - global journeys - journey = next((j for j in journeys if j['id'] == journey_id), None) - if journey is None: - return jsonify({'error': 'Journey not found'}), 404 - - journeys = [j for j in journeys if j['id'] != journey_id] - save_journeys() - return jsonify({'message': 'Journey deleted successfully', 'journey': journey}) - -@app.route('/api/journeys/health', methods=['GET']) -def health_check(): - """Simple health check endpoint.""" - return jsonify({'status': 'healthy', 'timestamp': datetime.now().isoformat()}) - -@app.route('/') -def index(): - """Root endpoint – just a welcome message.""" - return ''' - - - Journey Mapper Backend - -

Journey Mapper API

-

Backend is running. Use /api/journeys endpoints.

- - - ''' - -if __name__ == '__main__': - app.run(debug=True, port=5000) \ No newline at end of file diff --git a/backend/data/journeys.json b/backend/data/journeys.json index 599c093..4a249a3 100644 --- a/backend/data/journeys.json +++ b/backend/data/journeys.json @@ -30,5 +30,53 @@ } ], "created_at": "2026-03-01T19:02:15.679031" + }, + { + "id": 2, + "title": "test 1", + "description": "sdfdsfafsfsdsf", + "markers": [ + { + "lat": 48.705462895790575, + "lng": 2.4334716796875, + "title": "New Marker", + "date": "", + "description": "", + "videoUrl": "" + }, + { + "lat": 47.37603463349758, + "lng": 2.0654296875000004, + "title": "New Marker", + "date": "", + "description": "", + "videoUrl": "" + }, + { + "lat": 47.25686404408872, + "lng": 5.020751953125, + "title": "New Marker", + "date": "", + "description": "", + "videoUrl": "" + }, + { + "lat": 47.25686404408872, + "lng": 5.954589843750001, + "title": "New Marker", + "date": "", + "description": "", + "videoUrl": "" + }, + { + "lat": 47.357431944587034, + "lng": 7.289428710937501, + "title": "New Marker", + "date": "", + "description": "", + "videoUrl": "" + } + ], + "created_at": "2026-03-05T13:00:48.757539" } ] \ No newline at end of file diff --git a/blog-posts.html b/blog-posts.html deleted file mode 100644 index e69de29..0000000 diff --git a/journey.html b/journey.html deleted file mode 100644 index 826cb5f..0000000 --- a/journey.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - Journey Timeline - - - - -
-

-
-
- - - diff --git a/map.html b/map.html deleted file mode 100644 index 1cf10b6..0000000 --- a/map.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - Simple Map Project - - - - - - - - - -``` - -map.html -```html -<<<<<<< SEARCH - - - - - - Journey Mapper - - - - - - - - -
- - - -
-
- - - - - - - - diff --git a/working_interactiv_map_with_marker.html b/working_interactiv_map_with_marker.html deleted file mode 100644 index fde8d33..0000000 --- a/working_interactiv_map_with_marker.html +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - Simple Map Project - - - - - - - - - -
- - - - - - -