1. Introduction and Overview
1.1 Project Title
Smart Remotely Connector
1.2 Objective and Goals
The goal of this project is to develop a system that allows remote management of electricity supply for client houses via SMS relays. This system includes a mobile application for technicians and a web dashboard for administrative management.
1.3 Scope
This project covers the development of a mobile application in Flutter and a web dashboard using React JS, Redux, and SQLite.
2. Functional Requirements
2.1 Mobile Application with Flutter
2.1.1 Admin Account Management
An admin account to create and manage user accounts (technicians).
First-time login for the admin with default credentials (username: "admin", password: "admin").
Redirect to an interface to change the password, with the new password sent via SMS to the chosen number.
2.1.2 Linking a Connector to a Client
A page with text fields to enter information and an option to take a photo.
A button to add a row in a static SQLite database, encrypted with a key stored in the keystore.
2.1.3 Displaying Linked Devices
A page displaying all linked devices with basic information.
Interface to show detailed information of a selected device.
Pagination functionality to display 30 devices at a time, with an option to display 20 more.
2.1.4 Displaying Devices by User
Interface allowing the admin to see devices linked by user.
2.1.5 Logging Trace
Logging all user actions in a log file.
Logging all requests and responses between the app and the server in a separate log file.
2.2 Web Dashboard with React JS, Redux, and SQLite
2.2.1 User Management and Roles
Similar functionalities to the mobile app for managing admin accounts.
Additional roles: "installer" to set the code on a card, "billing agent" to control devices added by technicians and to activate/deactivate them.
2.2.2 Device Management
A page to manage all devices.
Search devices by number, reference, or client name.
A switch button to activate/deactivate devices, with SMS sent to the selected device for activation/deactivation.
2.2.3 Displaying Activated/Deactivated Devices
A page to display activated or deactivated devices based on various criteria (region, route, time, etc.).
2.2.4 Login Page
Login page with username and password, using JWT for user session management.
2.2.5 Alert System
Alert system for clients who have not paid their bills, allowing device deactivation.
2.2.6 SMS History
History of SMS sent and received by each client device.
2.2.7 Device Testing Page
A page for billing agents to enter Arduino code and test devices.
Button to program an Arduino via USB and a button to test the network by sending an SMS.
2.2.8 Logging Trace
Logging all user actions in a log file.
Logging all requests and responses between the web app and the server in a separate log file.
2.2.9 Home Page and Statistics
Home page displaying statistics on devices (total count, activated count, deactivated count, time of deactivation, region with most deactivated devices, etc.).
2.3 Screenshots Requirement
Provide screenshots of the mobile app and dashboard before development.
3. Non-Functional Requirements
3.1 Performance
The mobile application and web dashboard should be responsive and capable of handling a large number of users and devices simultaneously.
3.2 Security
Use JWT for user session management.
Use HTTPS to secure communications.
Encrypt sensitive data.
Use keystore to store encryption keys.
Strong authentication for users.
3.3 Usability
Intuitive and easy-to-use user interfaces.
Comprehensive documentation for end-users and administrators.
4. Technical Specifications
4.1 System Architecture
The mobile application and web dashboard should connect to a centralized server for data management.
Use microservices to manage different functionalities.
4.2 Technologies Used
Mobile application: Flutter
Web dashboard: React JS, Redux, SQLite
Server: To be determined (e.g., Node.js, Django, etc.)
4.3 Integration with Other Systems
Integration with SMS systems to send and receive messages.
Integration with client billing systems.
5. Project Management
5.1 Timeline and Milestones
The project should be completed within 3 to 5 weeks.
Define key project stages and delivery dates.
5.2 Resources and Budget
Necessary resources include developers, hardware, etc.
The allocated budget is $1000.
5.3 Risk Management
Identify potential risks and define mitigation plans.
6. Acceptance Criteria
6.1 Project Acceptance Conditions
Define conditions required for the project to be considered complete and accepted.
6.2 Testing and Validation Procedures
Define testing and validation procedures to ensure quality and proper functioning of the system.
To resume.
For the dashboard this is our need :
* Admin account management
* Login Page
* Home stats
* Page to manage all devices with filter and Search functionality (multiple criteria) and on this page there is a Switch button to activate/deactivate devices, (popup of loading when sending SMS)
* Zone for Alerts (according to a specific formula)
* History page for SMS sent and received
* A page for uploading and testing code
* Trace Files
For the mobile app :
* Interface to Login
* Interface to fulfill a form and save it (information and real photo)
* Interface to display all linked devices with pagination
* Interface for a real-time test of the device (sending SMS with popup)
* Log trace (the sent of logs is as your purpose)
SMS gateway and domain hosting with both Apple and google accounts will be provided by the client
Budget: $1,000
Posted On: August 17, 2024 00:22 UTC
Category: Full Stack Development
Skills:Web Application, API Integration, Java, API, Desktop Application, C#, Android, Application Integration, JavaScript
Country: United Arab Emirates
click to apply
Powered by WPeMatico