Skip to content

Final Report( Fourth Blog post)

arunjose696 edited this page Jul 6, 2022 · 14 revisions

Final Report

Introduction

Sometimes what seems difficult to accomplish is actually rather simple. And occasionally, what we believe to be simple to accomplish requires a lot of time. Whatever has been accomplished remains a tangible testament to the laborious work that has gone into it, even if we choose to become consciously unaware of the time it took to achieve it. When we begin as absolute beginners yet end up being capable of supporting the weight of our big achievement, the accomplishment becomes even more enticing. No matter how short or long the project, working on it rewards the team with a learning curve that is inherently difficult to express. It is worthwhile to develop the sense of responsibility that the project, or rather, its deadlines, impose onto each team member. It is unquestionably the notion of owning the work one does that brings it to a close or, in the alternative, moves it closer to the desired outcome. We remain incredibly proud and confident in our ability to have completed what we once considered to be a huge task today. Welcome to Team Twitcher's  final blog post. The challenges we encountered while creating the application and how we overcome each one will be detailed in this blog post.

Motivation

The idea of the ISEE project was to learn the process flow of a software development project and get to know the learnings and troubles that come along. Software development being a area which focusses mostly on problem solving we as a team wanted to implement a use case which could be usefull in some form. Bird tracking is one of the oldest hobbies of people across the world. Being a prolonged hobby the way people track birds are often the old school way with a bird watcher diary and having a checklist for the bird spotting.

In the new age of digital transformation ,we wanted to present to them a mobile application which could do these things on their phone so they dont need to carry a diary with them always. But the major highlight which we wanted to present was to integrate artificial intelligence capabilities for the app so the application by itself would predict the bird species the bird tracker spots.

In the picture to the right you could see a birder watching birds we have a caption for it which says he is doing it wrong. One obvious reason is the bird is in his head and not in the camera frame 😆 . But a different reason is it would be better to use mobile application which has AI capabilities so the birder could learn about new species of birds while spotting them. Ours is a mobile app which could exactly do that.

The sections of this blog post are as follows:

  • Introduction
  • Motivation
  • Added Features
  • Activity Diagram
  • User Stories
  • Technical difficulties we encountered and overcame
  • Application Screenshots
  • Conclusion

Added Features:

The features in this app are listed in detail in the Readme.md file. However here we would like to list down the features which were incrementally added after the ones we presented in the last blog post.

  • Add current location/ User preference location
  • Navigation drawer
  • Export birds data to excel file
  • Filter bird details in the selected date range
  • Log in page
  • Delete six months old birds data

Activity Diagram

image image

User Stories:

image image

Technical difficulties we encountered and overcame:

There were numerous difficulties. We immediately became aware that none of us had any previous experience with Android development or a solid foundation in the Java language. Therefore, we were very confident that there would be a ton of obstacles in our way.

The main technological obstacles we encountered while creating our application are summarized below:

  • Understanding and working on GitHub:

We first struggled with understanding how to push, commit, and pull because we were absolutely new to GitHub. Both editing the blogs and the reports was difficult and annoying. Over time, things improved, but the early difficulty is still important to note.

  • Coding Complications:

The features looked simple in the functionality but we could realize there were a lot of intricate issues on how the code was structured. Implementing a feature to make the wiki link clickable was difficult as by design of the app. As per clients requirement we used a folding cell in the app which would close when clicked but this would create a future conflict with the app and we tried out multiple options but all of them meant we would need to change the app drastically to make links clickable. After all this was a good learning for the team on the process of software development on how design decisions could complicate the working of the app in multiple levels. The changing requirements which might seem simpler on the outside might turn into something that would be of great pain on implementation. The camera in emulator in my laptop crashes the android studio when the camera is set to use laptop front cam. Tried out options available on github and stackoverflow. The tflite model was incorrectly predicting all photos to same class this was a trouble but finally it was figured out the issue was caused as the results of tflite model were not sorted before taking the best class and so the issue was solved. Faced issues initially with connecting app to database but with tutorials and solutions in stackoverflow was able to fix this and go forward. Merging the changes to the master branch as the changed branch was having conflicts. Also got null pointer errors as the structure of the bird was changed got this fixed discussing in the team.

Application Screenshots:

image image image

Conclusion

The project ends with a lot of takeaways as we learned how to work in teams and how to divide tasks between members. The deadlines, customer meetings, weekly reports, blogs, milestone presentations - all of these gave us an wholesome development both in terms of hard and soft skills. We could also experience the difficulties that might be faced in implementing minor changes based on the initial design decisions that are involved. There was less time to implement the coding conventions and formatting code. But we realize the importance of following the standards as it would definitely improve the programming experience.

You can try out the app by downloading apk

https://github.com/arunjose696/Twitcher/tree/master/apk

Team- Twitcher