Welcome to the documentation pages of ECOnnect!
You can find here details about ECOnnect, from a high-level vision to low-level implementation decisions, a kind of Software Development Report, organized by type of 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!
- Bruno Oliveira (up202208700@up.pt)
- João Mendes (up202208783@up.pt)
- Nuno Machado (up202206186@up.pt)
- Rodrigo Silva (up202205188@up.pt)
- Vítor Pires (up202207301@up.pt)
2LEIC16T1 - ES 2023/24
Did you ride your bicycle to work today? Or you just finished recycling the trash from the last 3 weeks? Would you like to share your sustainable actions to motivate other people?
In an era facing serious environmental issues, everyone needs to take action toward a brighter future, but how exactly?
ECOnnect is the app designed just for this! By embracing community and collaboration we encourage users to promote and share their eco-friendly actions and ideas.
Together, we can achieve meaningful results with simple everyday contributions. Come help us!
- User Login: users who want to use the app should be able to create an account associated with their e-mail.
- Share Content: Users will be able to upload pictures/videos to the app, or even take them through the camera, and share them with the community.
- Profile Page: Users will be able to see information about other users on their respective profile pages, like profile pictures, contact information and previous posts.
- Follow Other Users: Logged-in users will be able to follow other users, allowing them to be updated on their activity and prioritize their posts on the follower's feed.
- User Feed: Users will see the most relevant posts on the first page
- Sustainability Challenges: Monthly challenges or initiatives related to sustainability will be available, to engage users in eco-friendly activities.
- Rating System: Users who find other posts inspiring can give positive feedback to the original creator, allowing them to rank higher in challenges and be suggested to other people.
- Search Users: Users should be able to search for other users, according to their interests.
- Comment Section: Every post will have a section for users to comment and share their thoughts and ideas.
- Firebase (Firestore, Cloud Storage and Authentication)
- Flutter image_picker plugin
Did you ride your bicycle to work today? Or you just finished recycling the trash from the last 3 weeks? Would you like to share your sustainable actions to motivate other people?
In an era facing serious environmental issues, everyone needs to take action toward a brighter future, but how exactly?
ECOnnect addresses these questions by embracing community and collaboration and encouraging members to promote eco-friendly actions and ideas.
Post your actions daily, like and comment on other posts and follow other user to keep yourself updated with their recent activity!
By focusing on sustainable actions and positive user feedback, ECOnnect aims to facilitate sharing new ways to make the world a better place and inspire others to do the same.
Together, we can achieve meaningful results with simple day-to-day contributions. Come help us!
Quantos de vocês vieram de transporte público hoje para a faculdade? Ou quantos de vocês reciclam frequentemente? Gostavam de partilhar essas ações e motivar outras pessoas?
Numa era que enfrenta graves problemas ambientais, todos nós precisamos de tomar ação para um futuro melhor, mas como exatamente?
ECOnnect resolve estas questões, ao usar valores de comunidade e colaboração, e incentivando membros a promover ações e ideias sustentáveis.
Publica as tuas ações diárias, dá gosto e comenta nas publicações de outros utilizadores para os motivar, ou até segue-os para te manteres atualizado das suas atividades.
Com foco nas ações sustentáveis e em feedback positivo dos utilizadores, ECOnnect procura facilitar a partilha de novas maneiras de tornar o mundo num lugar melhor e inspirar os outros a fazer o mesmo.
Juntos, podemos alcançar resultados incríveis com simples ações diárias. Junta-te a nós!
A user is any individual registered on the platform. Users are authenticated via email and password.
They have the option to personalize their profiles by including a description and uploading a profile picture.
They can also create posts consisting of pictures along with textual descriptions. Users may also follow other users and like / comment on each other's posts.
Furthermore, the platform hosts challenges (created by admin users) focused on eco-friendly activities (with defined start/end dates and specific goals).
Users can participate in these challenges and earn points. There is a leaderboard that displays users with the highest scores.
This project is based on an MVC architectural pattern.
The user interacts with ECOnnect UI (e.g. to create a new post) and the requests are processed through the database logic.
The database logic layer is responsible for fetching necessary information from Google Firebase, using Firestore for structured data storage and Cloud Storage for handling multimedia content.
The ECOnnect mobile application runs in the operating system (OS) environment of the user's mobile device. The UI allows users to communicate with the platform, such as creating, editing and viewing posts, seeing other users' profiles, etc. The application is set up with the appropriate logic to handle each of these actions.
Persistent data, including user profiles, posts/multimedia content, is stored in a dedicated database server.
In the diagram, each component is identified with the hardware on which it should be installed or deployed.
The vertical prototype we developed was implemented with the integration of the camera and the Firebase technologies in mind (Firestore and Cloud Storage). For that, we developed a simple post creation and visualization system.
By opening the app, one can see all the posts currently in the database. When a post is created, by taking a picture with the camera, the image is sent to Cloud Storage and a new Post
object is stored in the database.
You can find below information and references related to the project management in our team:
- Backlog management: Product backlog and Sprint backlog in our Github Projects board
- Release management: v0, v1, v2, v3
Goal: Implement login page; implement adding photos to the app/database; implement draft of the main page
Start of Sprint 1 End of Sprint 1
- Envision the product from the perspective of a larger audience (public or mass market)
- Focus more on improving the User Experience (e.g. providing more visual feedback)
- Merging multiple branches only at the very end of the sprint
- Good teamwork and organization
- Implementing all planned features and accomplishing all the objectives for the sprint (good estimation)
Goal: Perfect the elements already implemented; implement profile pages; implement likes on posts; implement following other users; implement edit/delete actions on users' own posts
Start of Sprint 2 End of Sprint 2
- Improve the features we already have with clean code
- Fix any issues, bugs or glitches in our app
- Perform more stress testing
- Merging branches at the end of the sprint
- Implement multiple users stories in a single pull request
- Envision the product from the perspective of a larger audience (public or mass market)
- Good teamwork and organization
- Implementing all planned features and accomplishing all the objectives for the sprint (good estimation)
Goal: Perfect the elements already implemented; implement comments on posts; implement search page; fix any issues or bugs
Start of Sprint 3 End of Sprint 3
- Better communication between some of the members of the group
- Merge features without associated unit tests (this was an exception for our demo presentation)
- Features developed are tested and robust, they have visual queues for users already implemented, ...
- Envision the product from the perspective of a larger audience (public or mass market)
- Implementing all planned features and accomplishing all the objectives for the sprint (good estimation)
- In ESOF, they are very picky about how you organize your project, how you do the UMLs, how you use Github, etc. You have to be very careful with everything if you want a good grade. Also, if in any step you have doubts, I suggest asking your professor or seeking the slides from the theory classes.
Final Grade: 19.0/20