Skip to content

FredericoPerimLopes/Fulsk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

13 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Fulsk: Solar Panel Monitoring App – Project Plan πŸš€ Overview Fulsk is a smart monitoring application designed to help solar panel owners, installers, and energy managers track real-time and historical performance of solar systems. The goal is to provide insights into power generation, efficiency, potential faults, and environmental impact.

🎯 Objectives Monitor real-time energy production

Track panel performance (temperature, voltage, current, etc.)

Detect anomalies or faults

Offer historical data and analytics

Provide mobile and web interfaces

Integrate with solar inverters and IoT hardware

Notify users of inefficiencies or maintenance needs

πŸ” Key Features βœ… Core Features Real-time monitoring dashboard

Device (panel/inverter) registration and management

Historical data visualization (daily, monthly, yearly)

Power output analytics and comparisons

Fault detection and alert system

Weather API integration for efficiency context

Offline data buffering and sync

πŸ’¬ Notifications Email/SMS/Push notifications on fault detection or performance drop

Scheduled daily/weekly energy reports

πŸ“Š Advanced Analytics Estimated savings calculation

Efficiency per panel (for installations with multiple panels)

Carbon offset tracker

πŸ›  Admin Tools Remote diagnostics

User management (roles: Admin, Installer, Viewer)

Firmware update interface (if integrating with hardware)

System configuration and settings management

Backup and data export functionality

Performance monitoring and system health

πŸ— Technical Architecture

Backend Services

  • Data Ingestion Service: Real-time solar panel data collection
  • Analytics Engine: Performance analysis and fault detection algorithms
  • Notification Service: Multi-channel alert delivery system
  • User Management: Authentication and role-based access control
  • Weather Integration: Third-party weather API correlation
  • Reporting Service: Historical data processing and export

Database Design

  • PostgreSQL: User management, device configuration, system settings
  • TimescaleDB: Time-series data for sensor readings and analytics
  • Redis: Real-time data caching and session management

Frontend Applications

  • Web Dashboard: React.js responsive interface for all device types
  • Mobile App: React Native cross-platform mobile application
  • Admin Panel: System administration and configuration interface

IoT Integration

  • Supported Protocols: MQTT, HTTP/HTTPS, Modbus TCP
  • Compatible Inverters: SMA, Fronius, Enphase, SolarEdge, ABB
  • Data Collection: 1-minute intervals with offline buffering

πŸš€ Quick Start

Prerequisites

  • Node.js 18+ and npm
  • PostgreSQL 14+
  • Redis 6+
  • Docker (recommended for development)

Installation

# Clone the repository
git clone https://github.com/yourusername/fulsk.git
cd fulsk

# Install dependencies
npm install

# Set up environment variables
cp .env.example .env

# Start development environment
npm run dev

Environment Configuration

# Database
DATABASE_URL=postgresql://user:password@localhost:5432/fulsk
REDIS_URL=redis://localhost:6379

# External APIs
WEATHER_API_KEY=your_weather_api_key
JWT_SECRET=your_jwt_secret

# IoT Configuration
MQTT_BROKER_URL=mqtt://localhost:1883

πŸ“± Development

Project Structure

fulsk/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ api/          # REST API endpoints
β”‚   β”œβ”€β”€ services/     # Business logic services
β”‚   β”œβ”€β”€ models/       # Database models
β”‚   β”œβ”€β”€ middleware/   # Express middleware
β”‚   └── utils/        # Helper utilities
β”œβ”€β”€ client/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/  # React components
β”‚   β”‚   β”œβ”€β”€ pages/       # Application pages
β”‚   β”‚   β”œβ”€β”€ services/    # API client services
β”‚   β”‚   └── utils/       # Frontend utilities
β”œβ”€β”€ mobile/           # React Native mobile app
β”œβ”€β”€ tests/            # Test suites
└── docs/             # Documentation

Available Scripts

npm run dev          # Start development server
npm run build        # Build production bundle
npm run test         # Run test suite
npm run lint         # Run ESLint
npm run typecheck    # Run TypeScript checks

Development Workflow

  1. Create feature branch from main
  2. Implement changes with tests
  3. Run npm run typecheck && npm run test
  4. Submit pull request with description

πŸ”Œ API Documentation

Authentication

POST /api/auth/login
Content-Type: application/json

{
  "email": "user@example.com",
  "password": "password"
}

Response: { "token": "jwt_token", "user": {...} }

Device Management

POST /api/devices
Authorization: Bearer jwt_token

{
  "name": "Solar Installation #1",
  "type": "inverter",
  "manufacturer": "SMA",
  "model": "Sunny Boy 5.0",
  "location": {...}
}

Real-time Data

GET /api/devices/{id}/realtime
Authorization: Bearer jwt_token

Response: {
  "timestamp": "2024-01-15T10:30:00Z",
  "power": 4500,
  "voltage": 240,
  "current": 18.75,
  "temperature": 32.5
}

πŸ§ͺ Testing

Test Coverage

  • Unit tests for all services and utilities
  • Integration tests for API endpoints
  • End-to-end tests for critical user workflows
  • Performance tests for real-time data processing

Running Tests

npm test                    # Run all tests
npm run test:unit          # Unit tests only
npm run test:integration   # Integration tests
npm run test:e2e          # End-to-end tests

πŸš€ Deployment

Production Requirements

  • Node.js 18+ runtime environment
  • PostgreSQL 14+ with TimescaleDB extension
  • Redis 6+ for caching and sessions
  • Reverse proxy (nginx) for static file serving
  • SSL certificate for HTTPS

Docker Deployment

# Build and start all services
docker-compose up -d

# Scale services as needed
docker-compose up -d --scale api=3

Environment Variables

NODE_ENV=production
PORT=3000
DATABASE_URL=postgresql://...
REDIS_URL=redis://...

🀝 Contributing

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Code Style

  • Use TypeScript for all new code
  • Follow ESLint configuration
  • Add JSDoc comments for public APIs
  • Write tests for new functionality
  • Update documentation as needed

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ†˜ Support

πŸ† Acknowledgments

  • Solar panel manufacturers for hardware integration support
  • Open source time-series database communities
  • Weather API providers for environmental data correlation

About

Solar panel monitoring system

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published