Where did the time go?

The quarter is almost over and I feel like it went by too fast! Maybe it’s because this is our last quarter or maybe because I like this class. There isn’t enough time to make our app look “pretty”, but we’ll try with the little time we have left.

This past week I was reminded about how communication is really important when working in a team…or just in general. I was implementing a POST request thinking information I needed to send to the server was the student’s name and project code. I kept getting an error when my teammate informed me that it was because there were more requirements for the request.

See, she was under the impression that the project description would be provided by the student, whereas I thought it was going to be already in the database provided by the teacher.

It was an easy fix, but I kept thinking about how this could’ve been prevented by simply communicating with her instead of assuming about what was going on. Or I could’ve looked at the server code more carefully.

I’m sure I’ll encounter more moments like this in the future, but at least now I’m aware of the areas I need to improve to be a better developer.

What to do when hitting a wall in programming?

This week I’ve hit a couple of walls (figurative speaking) that have made feel overwhelmed and frustrated. I’m really enjoying working on this project because everything that I’m doing is a brand new learning experience.
I’ve always wanted to develop a mobile app and this project gave the opportunity to do so. While learning as I code is exhausting, it’s pretty doable and fun.
What is not so fun is being stuck in a problem where I have exhausted every google search I can think of to resolve the problem.

Why haven’t I asked for help you may ask.  Because, I’ve found that for me, I learn more if I try to solve the problem by myself first. If I hit a wall, and my first response is to ask someone how to do it, I’ll never really learn as much. So I need to go through the struggle and exhausted every resource available to me.

Anyway, I think the time to ask for help is here. Sometimes it’s just necessary in order to move on.

Project Update

So we’ve built out the front-end of our React Native application (mostly the foundation). We’ve got our components made, the screens look pretty simple at the moment. Now the next step is to connect to some API in order to populate the app with data, provide user information and more. But what should we do from here? – is the question I kept asking myself when I got to this point.

Connecting to the Server
When I got to this step I learned that Expo ( the tool we chose to use to configure our project) is not compatible with MongoDB. This was a problem for all of us because we couldn’t just switch to another database with the little time we have left to complete the project. After meeting with my teammates, we found a way to work around the problem.

Even though we couldn’t directly connect to the database, we could still create a Node.js API behind the hood, which can then be connected to MongoDB locally and through the cloud.

This was one just piece of the puzzle. The other part was to figure out how to actually connect the client to the server. After some not so efficient google searches, I found that the tool I needed was Axios.
Axios is a Javascript library that will helps us make requests to the Node.js backend API. Axios can be use to send HTTP requests and receive HTTP responses.
After installing axios, I configured the base parameter to create an axios instance to connect to the database locally.

Testing the connection
Using Postman, I was able to make some http requests to make sure everything was working as it should.
Now we are ready to make the client communicate with the server with real data.

I am currently feeling much better about our project. We have all been making progress even though our start was slow with a lot of obstacles. I’ve been looking forward to merging all of our part together and see it flow coherently, and I think we are getting closer to that milestone.

Citizen Science for Kids

My team and I finally decided on a protect. Our first choice out of five project plans is Citizen Science App for Kids. I’m very excited to get started and work with other people.

Chosen Project

The Citizen Science app for kids is aim to spark K-12 students’ interest in science and let them contribute to a real live scientific project. It’s an educational platform where educators can create projects for their students to join. For example, using the app to document the sightings of threatened frogs in NSW National Park to understanding where they live, which helps improve their chance of survival in the future. We will create a similar platform where kids can get involved while having fun. More details about the specifics of the app can be found here.

Developer Team

Our team is comprised of 3 students. We have been in constant communication and have a set of teamwork standards to work in the most effective manner. We are in different time zone around the world, up to 9 hours difference, which can be challenging for allocating time for meetings. But so far everything has been working out, and we are planning on meeting up again to work on our detailed project plan.

Rough Draft Plan

As a team, we briefly talked about the details of our project. We want to focus on one biological or environmental task so it’s not overwhelming for the user. We are thinking about writing our source code using either python or javascript. There is a lot more that we need to discuss about the project’s tasks and how we’ll divide the workload so everyone can have the same amount of contribution.