This project is part of the NASA App Challenge and serves as the backend for the Landsat notification system. It processes and provides access to Landsat satellite data, schedule notifications for interest points and provides dashboards about reflectance data.
- Fetch and process Landsat 8 & 9 data.
- Provide API for accessing processed data for a given geographical point.
- Store and manage metadata related to Landsat 8 & 9 scenes.
- Auth users for save point of interest
- Schedule notifications when a landsat pass over a saved point
├── init-mongo/
├── src/
│ ├── cmd/
│ │ ├── api/
│ │ └── index.ts
│ └── internal/
├── .env.example
├── .gitignore
├── .nvmrc
├── .prettierrc
├── .docker-compose.yml
├── Dockerfile
├── eslint.config.js
├── Makefile
├── README.md
├── package.json
├── package-lock.json
└── tsconfig.json
- NodeJS (check .nvmrc)
- NVM (Node Version Manager)
- Docker
- Git Bash or WSL for Windows
- MongoDB if not docker present
-
Clone the repository:
git clone https://github.com/Landsat-Manhattan-Project/landsat-backend.git
-
Navigate to the project directory:
cd landsat-backend
-
Install NodeJS for the project using NVM
-
Install dependencies:
npm install
-
Setup env variables (not needed if using docker taking the default values):
cp .env.example .env
-
Setup RSA keys for JWT auth
openssl genrsa -out private.pem 2048 openssl rsa -in private.pem -pubout -out public.pem
-
Start the server for dev env with docker:
make run
-
Access the API at
http://localhost:8080
.
Makefile have some utils commands for the setup of mongodb, check logs among other utilities, check them with:
make help
This project is licensed under the MIT License.