Skip to content

Latest commit

 

History

222 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Orticello Logo

Sistema di gestione intelligente per orti urbani comunitari

Node.js MongoDB Express

Documentazione APICaratteristicheInstallazioneTeam


📖 Descrizione

Orticello è una piattaforma RESTful API completa per la gestione degli orti urbani comunitari della città di Trento. L'applicazione facilita l'amministrazione dei terreni coltivabili, la gestione delle assegnazioni ai cittadini, il monitoraggio ambientale e la comunicazione tra comuni, associazioni e utenti.

🎯 Obiettivi

  • 🏡 Semplificare la gestione degli orti urbani
  • 👥 Connettere cittadini, associazioni e amministrazioni comunali
  • 📊 Monitorare le condizioni ambientali con sensori IoT
  • 📢 Facilitare la comunicazione attraverso avvisi e bandi
  • 🌍 Supportare la sostenibilità urbana e l'agricoltura locale

✨ Caratteristiche Principali

🔐 Autenticazione e Autorizzazione

  • Sistema JWT per autenticazione sicura
  • Gestione ruoli multi-livello (Cittadini, Associazioni, Comuni)
  • Controllo accessi basato su permessi granulari

🗺️ Gestione Spaziale

  • Localizzazione orti e lotti

🌿 Amministrazione Orti e Lotti

  • Gestione completa di orti urbani e singoli lotti
  • Sistema di assegnazione e affidamento terreni
  • Tracciamento stato e disponibilità lotti

📣 Comunicazione

  • Sistema avvisi per comuni e associazioni
  • Gestione bandi di concorso

🌐 Internazionalizzazione

  • Supporto multilingua (🇮🇹 Italiano, 🇬🇧 Inglese, 🇩🇪 Tedesco)
  • Rilevamento automatico lingua preferita

🤖 AI Integration

  • Integrazione Generative AI
  • Consigli personalizzati per la coltivazione

🏗️ Architettura

Stack Tecnologico

Backend Framework:  Express.js 4.16.3
Database:          MongoDB 9.0.0 con Mongoose ODM
Autenticazione:    JWT + bcrypt
Documentazione:    OpenAPI 3.0 / Swagger
Testing:           Jest + Supertest
Security:          CORS, Validator

Struttura Moduli

📦 Orticello API
├── 🏡 Orti (Gardens)           - Gestione orti urbani
├── 📐 Lotti (Plots)            - Gestione singoli lotti coltivabili
├── 👤 Utenti (Users)           - Gestione utenti (cittadini, admin)
├── 🏢 Associazioni             - Gestione associazioni di quartiere
├── 🏛️ Comune (Municipality)   - Gestione enti comunali
├── 🤝 Affidamenti              - Assegnazioni orti e lotti
├── 📢 Avvisi (Notices)         - Comunicazioni pubbliche
├── 📋 Bandi (Competitions)     - Bandi di assegnazione
├── 🌤️ Meteo (Weather)         - Dati meteorologici
└── 📡 Sensori (Sensors)        - Dati sensori ambientali

🚀 Installazione

Prerequisiti

  • Node.js >= 20.19.0
  • npm >= 10.0.0
  • MongoDB (locale o cloud)

Setup

# Avvia l'applicazione
npm start

# Oppure in modalità sviluppo
npm run dev

📚 Documentazione API

La documentazione interattiva completa è disponibile tramite Swagger UI:

https://orticelloapi.onrender.com/api-docs

Endpoints Principali

Risorsa Endpoint Descrizione
🔐 Auth /api/v1/authentication Login e registrazione
🏡 Orti /api/v1/orti CRUD orti urbani
📐 Lotti /api/v1/lotti CRUD lotti coltivabili
👤 Utenti /api/v1/utenti Gestione utenti
🏢 Associazioni /api/v1/associazioni Gestione associazioni
📢 Avvisi /api/v1/avvisi Gestione comunicazioni
📋 Bandi /api/v1/bandi Gestione bandi
🌤️ Meteo /api/v1/meteo Dati meteorologici
📡 Sensori /api/v1/sensor Dati sensori IoT

🧪 Testing

# Esegui tutti i test
npm test

# Test specifici
npm test -- controllers/ortoController.test.js

Copertura Test

  • ✅ Controller tests
  • ✅ Utility middleware tests
  • ✅ Authentication tests

🌍 Internazionalizzazione

L'API supporta richieste multilingua:


🔒 Sicurezza

  • 🔐 Autenticazione JWT con token expiration
  • 🔑 Password hashing con bcrypt
  • ✅ Validazione input con validator.js
  • 🛡️ CORS configurato
  • 🔍 Sanitizzazione dati
  • 📝 Logging completo richieste ed errori

📊 Logging

Sistema di logging strutturato per:

  • ✅ Richieste HTTP
  • ❌ Errori applicativi
  • 🔌 Connessioni database
  • ⚠️ Avvisi di sistema

👥 Team

Sviluppato con ❤️ da:

  • Ali Raja Faizan
  • Antonio Caria
  • Federico Pedron

📞 Contatti

Per domande o supporto, apri una issue su GitHub.


Coltiva il futuro verde delle città! 🌱🏙️

About

Web application to manage urban gardens in Trento.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages