Skip to content
This repository was archived by the owner on Oct 6, 2025. It is now read-only.

pedroafmonteiro/ecotracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

EcoTracker Development Report

WARNING

If you want to build this app manually, you will have to go through the Firebase process yourself.
There are some API keys in the codebase, which will not work for you. The Android API key can only be used on some apps with a certain certificate attached to it and the iOS and Web API keys were deleted and cannot be used anymore.
If you want to test the app, you can install the latest version from the releases page.

Welcome to the documentation pages of EcoTracker!

This Software Development Report, tailored for LEIC-ES-2024-25, provides comprehensive details about EcoTracker, from high-level vision to low-level implementation decisions. It’s organised by the following activities.

Contributions are expected to be made exclusively by the initial team, but we may open them to the community, after the course, in all areas and topics: requirements, technologies, development, experimentation, testing, etc.

Please contact us!

Thank you!


Business Modelling

Business modeling in software development involves defining the product's vision, understanding market needs, aligning features with user expectations, and setting the groundwork for strategic planning and execution.

Product Vision

EcoTracker is an application that allows users to track the energy consumption of their appliances while enabling companies to register their products with accurate consumption data. The platform provides greater transparency and control over energy usage, promoting efficiency and sustainability, "bringing clarity to your energy consumption for a greener future."

The goal for our app is to revolutionize energy efficiency by providing our customers with a tool that lets them be aware of their energy consumption and waste, promoting sustainability and a greener future, while also facilitating the access and selling of appliances by allowing manufacturers to provide detailed information about their products. That is why our motto is "Empowering consumers and businesses for a more sustainable future."

Features and Assumptions

  • User Authentication –> Users can log in securely with their google accounts to mantain their preferences and data every time they enter the app.

  • Add Devices -> The app allows users to add their own devices, that will be stored in a database, as well as their characteristics.

  • Maintainer Mode -> If a user classifies as a mantainer in some company, he will get the ability to add the company's new devices or release versions.

  • Track Consumption -> The users will be allowed to introduce information about the time they used an equipment, the app automatically converts that time to energy usage.

  • Tips -> The app provides a daily tip to help users reduce their energy consumptions.

  • Warnings -> The app warns the user of an eventual increase, regarding the general consumption or even of some particular device.

  • Stats -> The user has the possibility to see all the statistics about their devices consumption throughout time.

  • Consumption Resume -> The user will be given a resume of the monthly consumptions.

Elevator Pitch

Energy waste and high electricity costs are major problems for both consumers and manufacturers. Many people have no clear understanding of how much energy their appliances consume, leading to inefficiency and unnecessary expenses. This is where our app comes in handy. Our platform empowers users with insights into their energy consumption so they can optimize usage, save money, and protect the planet by reducing their footprint. On the other side, we have manufacturers—our app provides them the opportunity to showcase their products with accurate data, improving their relationships with clients and boosting their sales. With EcoTracker, we aim to reduce the gap between energy efficiency and sustainability, bringing clarity to energy consumption and paving the way for a greener future.

Requirements

User Stories

  • As a user, I want to monitor the average consumption of my appliances in either a personal or business environment, so that I can better understand my energy usage, compare different appliances, and receive suggestions to optimize efficiency.

  • As a user, I want to add my household appliances to the app and log their estimated consumption, so that I can track expenses over time, identify high-consumption devices, and receive suggestions for reducing energy costs.

  • As a user I want to know how appliances compare to each other so that I know which one is the best for my use case.

  • As a maintainer in a home appliance company, I want to add our products to the app so that users can add them more easily.

  • As a maintainer in a home appliance company, I want to market our devices in the app so that users know about our company.

  • As a maintainer in a home appliance company, I want to see how many users are using our appliances so that we can keep track of our most used products.

Domain model

 The diagram represents the structure of the energy consumption monitoring app. 
        Users can add devices to record their energy consumption. 
        Companies provide information about devices they designed.
        The data is organized into reports in the form of notifications, which the users receive.

User Represents the users of the application, containing essential information such as name, email and password. A user can add devices and receive notifications related to energy consumption.

Device Models the monitored appliances, storing information such as brand, model, power and energy rating. Each device belongs to a user and records energy consumption data.

Consumption Records the energy consumption of devices, including the amount of energy used (kWh), a timestamp to indicate when consumption was recorded and an estimate of the cost.

Report Stores aggregated information about total energy consumption in a given period, including the date the report was generated.

Maintainer Represents companies responsible for adding information about devices, allowing users to choose models from a predefined database.

Architecture and Design

Logical architecture

 The diagram represents the application architecture in layers, with the UI, the
        controller which processes requests and communicates with the service layer, 
        for business logic (consumption calculation, reports).
        The model layer contains the main data structures, and the persistence layer
        manages the data using repositories. The external layer serves for
        external services, like emails and APIs.

Physical architecture

 This diagram represents the physical architecture of the application, 
        highlighting the main components and their connections. 
        It follows a client-server architecture, with interaction between the app and
        an application server with its database. It also may include interactions with external databases.

Vertical prototype

  • For our vertical prototype, we have implemented the adding of devices to the user's account. Meaning, each user can have their own set of custom devices, which will be important for the energy tracking features that we expect to deliver.
  • We also implemented an authentication mechanism using Firebase and Google Sign-In, so that users can access their info without losing any data.

Vertical prototype.

Project management

Sprint 0

Initial GitHub Project screenshot:

Initial screenshot of sprint 0.

Final GitHub Project screenshot:

Final screenshot of sprint 0.

Product release - version 0.1.0.

Restrospectives:

  • What did well: we achieved what we planned for this sprint, with all uml's done, populated our main README file and implemented the vertical prototype that we intended (Add a device).
  • What should we do differently: for the next sprint, we will need to better organize ourselves, and try to communicate more with other team members, as well as, making sure we are at the same rhythm.

Sprint 1

Initial GitHub Project screenshot:

Initial screenshot of sprint 1.

Final GitHub Project screenshot:

Final screenshot of sprint 1.

Product release - version 0.2.0

Retrospectives:

  • What did well: we achieved what we planned for this sprint, with the option to add and remove devices, as well as a new tip of the day feature in the home screen and also a new profile page where the user can now sign out. We also did some things that were not planned as we had a little bit of extra time, such as, added a functional dark mode toggle and added an onRefresh function to the general page with the devices page working.
  • What should we do differently: better organize the project issues across team members and a better sprint planning, so some people have easy issues and others difficult ones.

Happiness Meters:

Happiness meters of sprint 1.

Sprint 2

Vertical prototype:

Vertical prototype2.

Initial GitHub Project screenshot:

Initial screenshot of sprint 2.

Final GitHub Project screenshot:

Final screenshot of sprint 2.

Product release - version 0.3.0

Retrospectives:

  • What did well: we achieved what we planned for this sprint, statistics page all working with the log device usage functionality and now our app has maintainers from companies who can add home appliances for users to add them more easily.
  • What should we do differently: better organize the project issues across team members and a better sprint planning. Start coding right at the beginning of the sprint.

Happiness Meters(sprint2):

João Pedro Rodrigo Guilherme Vicente
João ⭐ Excellent ⭐ Excellent 😒 Fair 😒 Fair 😒 Fair
Pedro ⭐ Excellent ⭐ Excellent 😒 Fair 😒 Fair 😒 Fair
Rodrigo ⭐ Excellent ⭐ Excellent 😊 good 😊 good 😊 good
Guilherme ⭐ Excellent ⭐ Excellent 😊 good 😊 good 😊 good
Vicente ⭐ Excellent ⭐ Excellent 😊 good 😊 good 😊 good

Sprint 3

Initial GitHub Project screenshot:

Initial screenshot of sprint 2.

Final GitHub Project screenshot:

Final screenshot of sprint 2.

Product release - version 0.4.0

Retrospectives:

  • What did well: we achieved what we planned for this sprint, home page totally done and a redesign of the login page, more auth options for those who don't have a google account, an estimated electricity cost feature and dynamic coloring for the user to customize their app.
  • What should we do differently: better organize the project issues across team members and a better sprint planning.

Happiness Meters(sprint3):

João Pedro Rodrigo Guilherme Vicente
João ⭐ Excellent ⭐ Excellent ⭐ Excellent ⭐ Excellent ⭐ Excellent
Pedro ⭐ Excellent ⭐ Excellent ⭐ Excellent ⭐ Excellent ⭐ Excellent
Rodrigo ⭐ Excellent ⭐ Excellent ⭐ Excellent ⭐ Excellent ⭐ Excellent
Guilherme ⭐ Excellent ⭐ Excellent ⭐ Excellent ⭐ Excellent ⭐ Excellent
Vicente ⭐ Excellent ⭐ Excellent ⭐ Excellent ⭐ Excellent ⭐ Excellent

Final Release

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 6