Placemark-Svelte ๐
Placemark-Svelte is a modern full-stack application designed for managing and discovering favorite locations (Placemarks). The ecosystem consists of a sleek SvelteKit frontend and a robust Hapi.js backend (PlacemarkCORE), offering a seamless experience for tracking travels, exploring weather data, and visualizing locations.
๐ Live Deployments
๐ Features
- Interactive Maps: Visualize your placemarks using Leaflet integration.
- Weather Integration: Real-time weather data and visual charts for your saved locations.
- Photo Gallery: Upload and manage images for each placemark via Cloudinary.
- User Authentication: Secure JWT-based authentication including GitHub OAuth support.
- Admin Dashboard: A dedicated management interface built into PlacemarkCORE for oversight.
- Responsive Design: A modern, mobile-friendly UI featuring Easy UI components and a native Dark Mode toggle.
- Advanced Filtering: Filter through your collection of locations with ease.
- Multi-Store Backend: Support for MongoDB, JSON-based storage, and in-memory testing stores.
๐ ๏ธ Tech Stack
Frontend (Placemark-Svelte)
- Framework: Svelte 5 (utilizing Runes)
- Meta-Framework: SvelteKit
- Styling: CSS3 & Easy UI
- State Management: Svelte Runes
- HTTP Client: Axios
- Mapping: Leaflet
Backend (PlacemarkCORE API)
- Runtime: Node.js
- Framework: Hapi.js
- Templating: Handlebars (for the Admin Dashboard and server-side views)
- Database: MongoDB (via Mongoose) / LowDB (JSON)
- Authentication: JWT (JSON Web Tokens) & OAuth
- Validation: Joi
- Documentation: Hapi-Swagger
๐ Project Structure
๐ Getting Started
Prerequisites
- Node.js (v18 or higher recommended)
- MongoDB instance (local or Atlas)
- Cloudinary Account (for image uploads)
Installation
Setup the Backend:
git clone https://github.com/enrixx/PlacemarkCORE.git
cd PlacemarkCORE
npm install
# Create a .env file based on .env.example
npm run start
Setup the Frontend:
git clone https://github.com/enrixx/Placemark-Svelte.git
cd Placemark-Svelte
npm install
# Create a .env file based on .env.example
npm run dev
Access the app:
Open your browser and navigate to http://localhost:5173
โ๏ธ Configuration
Ensure you have the environment variables set in your respective .env files (including Mongo URI, Cloudinary credentials, and JWT secrets).
Check the .env.example file for reference.
๐งช Testing
The backend includes a comprehensive test suite using Mocha and Chai:
# From the PlacemarkCORE directory and dont forget to run the server with npm start run
npm run test