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.
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
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
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
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
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.