- Frontend: React.js
- Backend: Express.js
- Database: MongoDB
- Container Orchestration: Docker Compose
Before you begin, ensure you have the following installed:
- Docker
- Docker Compose
- Node.js (for local development)
.
├── frontend/ # React frontend application
├── backend/ # Express.js backend application
└── docker-compose.yml # Docker composition configuration
The application is configured using Docker Compose with the following services:
-
Frontend Service
- Built from the frontend directory
- Exposed on port 3000
- Connects to backend service
- Environment variables:
REACT_APP_API_URL
: Backend API URL
-
Backend Service
- Built from the backend directory
- Exposed on port 5000
- Connects to MongoDB
- Environment variables:
DATABASE_URL
: MongoDB connection string
-
MongoDB Service
- Uses latest MongoDB image
- Persistent data storage using Docker volumes
- Container name: mongo
-
Data Population Service
- One-time service for initial data setup
- Runs
populateFeatures.js
script - Depends on MongoDB service
- No automatic restart
- to load karnatakageojson data
-
Clone the repository:
git clone https://github.com/heykvr/GalaxEye-TileScope.git
-
Navigate to the project directory:
cd GalaxEye-TileScope
-
Start the application:
docker-compose up --build
-
Access the application:
- Frontend:
http://localhost:3000
- Backend API:
http://localhost:5000
(if run in local)
- Frontend:
MongoDB data is persisted using a Docker volume named mongo-data
.
All services are connected through a custom bridge network named app-network
.
If services fail to start, ensure all required ports are available
For local development:
-
Install dependencies in both frontend and backend directories:
cd frontend && npm install cd ../backend && npm install
-
Run services individually:
- Frontend:
npm start
in frontend directory - Backend:
nodemon run dev
in backend directory - Database: Use Docker Compose for MongoDB only
- Frontend: