top of page
IMG_5133.jpeg

Java Android App

October 2023 — December 2023

Role

App Developer, Software Engineer

Team — ​

Independent Project

Credit to Professor Challen Geoffrey

Overview 

During the end of my Fall 2023 semester I was assigned the final project for my Computer Science (CS 124) course. I was asked to apply what we learned by programming an Android App in Java which allows students to search and rate university courses.

Image 3-6-24 at 6.11 PM.jpeg

GitHub

How to View My Main Code:

  • Open Project on GitHub

  • Select the sequence of folders app src main

  • The three folders in the main folder each hold code I wrote for the main application

Credit to Professor Challen Geoffrey for majority of other code in this project.

If you are unable to login and view the project, this indicates that the project owner does not allow permission. Kindly proceed to the project description below.

Overview & Goal

Simple Overview —

  • Program an Android app using Java

  • Read documentation and existing code

  • Trace the execution of my app

  • Figure out what is going wrong

  • Determine what code needs to be changed, and how

Technical Overview —

  • Work with data, including serialization to and from JSON

  • Design a user interface and respond to events using asynchronous programming

  • Interact between a client and server over a network using the HTTP protocol

Tools / Software — 

  • Java, Android Studio, GitHub, Google Java Style Guide

  • OOP, CLI, JSON, HTTP, XML, API

These concepts are key parts of not just Android app dev, but the development of any modern application.

Execution

Steps I Took to Reach Goal

Step 1:
Initial Search

Uploaded Course Data by...

  • Adding course name, number, description, & summary to home page for initial search results

  • Showing the summary when selecting a specific course such as STAT 100: Statistics

Image 3-13-24 at 5_edited.jpg

Step 2:
Search Bar

Made Search Behavior Intuitive by...

  • Showing all courses during initial search

  • Showing relevant matches based on typed search

  • Going back to home screen when search is cleared

Image 3-13-24 at 5.19 PM.jpeg

Step 3:
Initial Rating

Allowed Users to Provide 5-Star Ratings​​ by...

  • Setting initial rating to empty stars

  • Saving the users rating

  • Communicating between API Client and API Server

Image 3-13-24 at 5.09 PM (1).jpeg

API Server &
API Client

Communicated between API Server & Client​​

API Server (Not Visible to User): 

  • Implemented user inputs received on server

  • Retrieved & saved ratings from user 

 

API Client (Visible to User):

  • Displayed ​courses & search results to user

  • Displayed ratings of each course to user

Image 3-13-24 at 5.09 PM.jpeg

Obstacles

Everything is Connected

As with any programming project, I had to stay persistent and verify each step by testing and debugging my code.

What made this project different from other assignments in the course was how everything was connected. My search bar relied on the course data, which relied on the ratings to make everything work.

I had to be patient and re-read my code in a very detail-oriented way to make sure I wasn't missing any steps. I also needed to understand very thoroughly how each piece was connected to know what to implement next and understand where things were going wrong.

Outcome

What I Learned

Given that this was my first Machine Project, I enjoyed the opportunity to test my knowledge of Computer Science, and was provided less help by course staff to challenge my abilities more extensively.

Through developing the app, I was able to work between the API Client and API Server, which allowed me to see how data is communicated between the back-end and user-end, providing a full-picture of the different layers that go into developing an application.

  • How the programs written in Java are displayed to users 

  • How the user's interaction with the search and rating bar are communicated back to the server to be analyzed, then requested information is sent back to the user

Due to the scope of this project, I was able to showcase many different technical skills and work with tools that are widely-used in the Software Engineering industry. I was also required to follow industry standards when writing my code, which meant following the Google Java style guide. I'm really proud of the time and effort I put into creating this application as it met the expectations I set.

bottom of page