Address-Mapper is a full-stack web application built with SvelteKit (Frontend), Node.js + Express (Backend), and MongoDB (Database). It calculates the distance between addresses and provides a user-friendly interface. This project supports Docker deployment, making it easy to set up locally and in production.
Pre-requisite: Docker client should be running, envs should be added ( this will just make sure the third party apis are working )
Clone the repo
Add environment variables in /backend before running the project, create a .env
file inside the backend
folder and add the following variables:
PORT=7004
MONGO_USERNAME= # MongoDB user name
MONGO_PASSWORD= # MongoDB password
MONGO_HOST= # MongoDB host
GOOGLE_API_KEY= # Google API key
ALLOWED_ORIGINS= # http://localhost:5173 for local development and testing
API_URL
and set it to localhost url web/src/config/constant.jslocalHost url: http://localhost:7004
make service
The project is live and accessible at https://address-mapper-production-322e.up.railway.app.
The application is deployed using Railway, and Docker is used for containerization, ensuring reliable deployment environments
You can access swagger api-documentation at https://address-mapper-production.up.railway.app/api-docs/#/
Make sure to change the server to production server while using the api-doc.
Category | Technologies |
---|---|
Frontend | SvelteKit, Vite, Bootstrap |
Backend | Node.js, Express.js |
Database | MongoDB |
Deployment | Docker, Docker Compose, Railway |
Linting | ESLint, Prettier |
APIs | Nominatim (Geocoding), Google API (Distance Calculation) |
make lint-backend
Lint and Format the Backend Code. Fixes ESLint errors in the backend code (backend/**/*.js). Formats code using Prettier for consistent styling.
make start-backend
Starts the Backend. Navigates to the backend directory and starts the Node.js Express server. Runs on port 7004 by default.
make start-web
Start the Frontend. Navigates to the web directory and starts the SvelteKit frontend. Runs the frontend on port 5173 by default.
make service
Start the Full Application with Docker. Runs the entire application using Docker Compose.
make service-build
Builds all Docker containers without starting them. Useful if you want to prepare images before deployment.
make service-stop
Stops all running Docker containers gracefully.
make test
Start running the backed test cases.