# Closing Thoughts

Overall, Orbital has been pretty fruitful for us. It has given us some exposure to software development and allowed us to learn new technologies that might come in handy in the future.&#x20;

A few valuable lessons learned were the **importance of prototyping/planning,** using and integrating **component libraries,** and lastly, **database management**.&#x20;

## Importance of prototyping/planning

From the get-go, we decided that it was wise to have a plan and visualization of everything we wanted in our application first. This was all done in Mockplus. Having a mockup of everything allowed our project to be smooth sailing.&#x20;

In the initial prototype (Milestone 1), we were satisfied with how everything flowed with each other thanks to the use of React Native's navigation drawer.&#x20;

As mentioned in the Challenges Faced section, we originally planned to use another API based on our initial research, but during the software development process, we encountered issues and complications. This was a small setback, we had to find and learn an alternative API to suit our application.&#x20;

## Component libraries

We made use of the open source component libraries for most of our UI design. Since most of these components fulfil our app's UI needs and are well designed, we decided to not start our UI components from scratch to ensure efficiency in our app design. Some of the libraries we used were *react native elements* and *react native paper*.&#x20;

A commonly used component in our app would be the color button. React native elements has a well-built button component with all the necessary props that help to aid our UI development process.

However, there are some components that we created from scratch in order to suffice the specific needs we are looking for. An example of such components would be areas where information are displayed (most recent running log, avatar stats etc).

## Database Management

We finalized our decision on using Firebase due to it's simple UI and advanced functionalities. Although the learning curve isn't as steep, the planning required for the database structuring was really important. The database management step is the most crucial part as it defines the layout and structure of our data. It helps to solidify the ways of how we are going to read and write our data.&#x20;

In the beginning, we struggled as we did not put much thought into planning the data structure which would lead to our first big obstacle. We hit a huge wall when we first encountered conflicts and difficulties in managing our data efficiently and appropriately. Hence, this led to us restructuring the entire database. However, for the second time, we did proper and detailed planning of the structure to ensure that such hiccups won't happen in future to hinder our app's progress.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://run-mania.gitbook.io/run-mania/closing-thoughts.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
