Skip to content

Raphailinc/Mars-Lab-Project

Repository files navigation

CI Coverage

Mars Lab Project

UI

Мини-приложение для отправки и просмотра отчётов (Express + MongoDB + React).

Quickstart

npm install
npm run build
npm start              # http://localhost:3000/api

.env (пример):

MONGODB_URI=mongodb://localhost:27017/mars_lab
PORT=3000
UPLOAD_DIR=uploads

API (curl-примеры)

# Проверка связи
curl -i http://localhost:3000/api/check-connection

# Загрузка файла
curl -F "file=@report.pdf" http://localhost:3000/api/upload-file
# -> {"fileName":"<stored-name>"}

# Создать отчёт и получить список
curl -X POST http://localhost:3000/api/reports \
  -H "Content-Type: application/json" \
  -d '{"scientistName":"Alice","reportContent":"Soil sample","fileName":"report.pdf"}'
curl http://localhost:3000/api/reports

Архитектура

  • backend/src/app.js — Express API, guard по окнам связи, Multer uploads, MongoDB (Mongoose).
  • backend/tests/ — Jest + supertest + mongodb-memory-server (in-memory) для API.
  • frontend/src/ — React SPA (отправка отчёта, список /reports), сборка webpack в frontend/public/bundle.js.
  • uploads/ — сохраняются автоматически, раздаются статикой /uploads.
  • periods.json — окна связи (health-check /api/check-connection).

Quality

  • Линт: npm run lint (ESLint + Prettier)
  • Тесты: npm test (Jest + supertest + mongodb-memory-server, с coverage)
  • CI: GitHub Actions (ci.yml) — lint + tests on Node 18.

About

Express + MongoDB + React app for sending and browsing reports with file uploads (REST API).

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors