Page 1 of 6
System Requirements Document (SRD)
Project Name: infini-solar
1. Introduction
The infini-solar project is a bilingual (Kannada + English) Android application designed to empower households with rooftop solar panels by providing an intuitive energy monitoring and optimization tool. The app, named ಸೂರ್ಯ ಶಕ್ತಿ (Surya Shakti), focuses on transforming users into "Prosumers" (Producers + Consumers) by enabling them to track solar energy generation and consumption, optimize energy usage, and maximize savings.
This document outlines the system requirements for the infini-solar project, incorporating the latest updates to include Kannada + English language support and automated presets for simulating daily solar energy generation based on weather conditions.
Page 2 of 6
2. System Overview
The infini-solar app is a personal energy dashboard tailored for solar-enabled homes, particularly in rural and semi-urban areas of India. It addresses the challenge of understanding and optimizing solar energy usage by providing a "Visual Energy Budget" that simplifies complex electrical data into actionable insights.
Key features include:
- Manual and simulated logging of solar energy generation.
- Tracking energy consumption to calculate net usage.
- Notifications for optimal appliance usage during peak solar hours.
- A 30-day savings report to highlight financial benefits.
- High-contrast, responsive UI designed for readability in sunlight.
The app will support both Kannada and English languages, ensuring accessibility for local and broader audiences. It will also feature automated presets for simulating daily solar generation based on weather conditions like sunny, cloudy, or rainy days.
3. Functional Requirements
Page 3 of 6
As a User:
- I should be able to switch between Kannada and English languages seamlessly.
- I should be able to manually log daily solar energy generation in kWh.
- I should be able to track my energy consumption by entering meter readings.
- I should receive notifications suggesting the best time to use heavy appliances during peak solar hours.
- I should be able to view a 30-day savings report showing electricity costs saved.
- I should be able to simulate daily solar energy generation using automated weather-based presets (e.g., Sunny, Cloudy, Rainy).
- I should be able to view a circular progress bar showing the ratio of solar vs. grid energy usage.
As an Admin:
- I should be able to manage and update the weather presets for simulation.
- I should be able to monitor app usage statistics for insights into user behavior.
4. User Personas
1. Household User (Primary User)
- Description: A homeowner with rooftop solar panels, residing in rural or semi-urban India.
- Goals: Optimize energy usage, reduce electricity bills, and maximize solar energy benefits.
- Tech Proficiency: Basic smartphone user.
2. Admin
- Description: A system administrator responsible for maintaining the app and updating weather presets.
- Goals: Ensure app functionality and provide accurate simulation data.
- Tech Proficiency: Advanced user with knowledge of app management tools.
Page 4 of 6
5. Visuals, Colors, and Theme
Color Palette:
The infini-solar app will use a vibrant and high-contrast color scheme for readability in sunlight and to evoke a sense of energy and sustainability.
- Background: #F7F4E9 (Soft Solar Beige)
- Surface: #FFF700 (Solar Yellow)
- Text: #000000 (Deep Black)
- Accent: #FF6F00 (Bright Solar Orange)
- Muted Tones: #A6A6A6 (Neutral Gray)
6. Signature Design Concept
The infini-solar app will feature a "Living Solar Dashboard" as its signature design concept.
Home Page Design:
- Dynamic Sun Animation: The homepage will feature a glowing, animated sun that changes its intensity based on the time of day (e.g., brighter during peak solar hours, dimmer in the evening).
- Interactive Circular Progress Bar: Users will see a circular progress bar that dynamically fills with solar yellow to represent the ratio of solar vs. grid energy usage.
- Weather-Based Backgrounds: The background will subtly change based on the selected weather preset (e.g., sunny skies, cloudy overcast, or rainy drops).
- Micro-Interactions: Buttons and icons will have smooth animations, such as a ripple effect when tapped, to enhance user engagement.
User Experience:
- Language Toggle: A floating language toggle button will allow users to switch between Kannada and English instantly.
- Responsive Design: The UI will adapt seamlessly to different screen sizes, ensuring a consistent experience across devices.
Page 5 of 6
7. Non-Functional Requirements
- The app must support Android devices running Android 8.0 (Oreo) or higher.
- The app must load all screens within 2 seconds.
- The app must store user data securely using encryption.
- The app must support offline functionality for logging and viewing data.
- The app must provide a battery-efficient experience, consuming minimal resources.
8. Tech Stack
Frontend:
- React Native for mobile app development.
Backend:
- Python with FastAPI for handling API requests.
Database:
- MySQL for structured data storage (e.g., user logs).
- MongoDB for unstructured data (e.g., weather presets).
AI Tools:
- Google Nano Banana for generating weather-based background images.
Page 6 of 6
Local Orchestration:
- Docker and docker-compose for containerized development.
9. Assumptions and Constraints
Assumptions:
- Users have basic knowledge of smartphones and can input data manually.
- Internet connectivity is intermittent in rural areas, so offline functionality is critical.
- The app will primarily target Android users in India.
Constraints:
- The app must comply with local data privacy regulations in India.
- The app must be optimized for low-end Android devices.
10. Glossary
- Prosumer: A user who is both a producer and consumer of solar energy.
- kWh: Kilowatt-hour, a unit of energy measurement.
- Visual Energy Budget: A graphical representation of energy generation and consumption.
- Weather Presets: Predefined weather conditions (e.g., Sunny, Cloudy, Rainy) used for simulating solar energy generation.
No comments yet. Be the first!