https://github.com/arcenojackson/smart-city
A monorepo to multi programming language studies
https://github.com/arcenojackson/smart-city
flask go java nestjs python spring-boot typescript
Last synced: 2 months ago
JSON representation
A monorepo to multi programming language studies
- Host: GitHub
- URL: https://github.com/arcenojackson/smart-city
- Owner: arcenojackson
- Created: 2024-11-22T00:24:24.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-12-05T00:34:18.000Z (6 months ago)
- Last Synced: 2025-02-02T07:28:51.523Z (4 months ago)
- Topics: flask, go, java, nestjs, python, spring-boot, typescript
- Language: HTML
- Homepage: https://linear.app/smart-city/team/SMA/all
- Size: 1.36 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Smart City
## Tech Stack and Architecture:
- API Gateway: Kong for routing and aggregating requests.
- Message Queue: RabbitMQ for service-to-service communication.
- Database:
- Shared DB (PostgreSQL) for simple MVP.
- Future: Polyglot persistence (MongoDB for IoT, MySQL for events, etc.).
- Tracing and Logging: OpenTelemetry for distributed tracing, Elastic Stack for logs.### Backend services
- Authentication Service (TypeScript/NestJS)
Handles user login, registration, and token generation (JWT).
Future: Add OAuth2, multi-factor authentication.- Notifications Service (Go)
Manage and handles all system notifications, by email.
Future: Add Push notifications.- Weather Analytics Service (Python/Flask)
Fetches and analyzes weather data (e.g., via APIs like OpenWeatherMap) and provides predictions.
Future: Add historical weather trends or alerting features.- Event Scheduling Service (Java/SpringBoot)
Allows users to create and manage public events (concerts, meetups, etc.).
Future: Add calendar sync, notifications.### Frontend
- Web (Angular)
A dashboard displaying aggregated data from all services.
Interactive features like live traffic maps, event calendars, and weather widgets.### Future
- IoT Device Management Service (Rust)
Manages sensors/devices in a smart city, ensuring secure and efficient communication.
- Traffic Monitoring Service (Go)
Real-time vehicle data ingestion and processing using WebSockets or gRPC.
- Billing Service (C#)
Processes payments for services like parking or public transport passes integrating with payment gateways like Stripe or PayPal.
- Mobile app (Flutter)
A simplified version of the dashboard with location-based features (e.g., find events near you).