back to CSS Capstone schedule

UWB Logo

Computer Science and Software Engineering Capstone Presentations

Fall Quarter

December 18, 2020

 

Weiquan Huang

"Designing a Photo-Sharing API Application"

(Individual Project - Student Defined)

 

Faculty Advisor: Dr. Nancy Kool

 

 

 

Abstract

For my autumn 2020 capstone project, I designed and built a photo-sharing API using Java, Spring, and MySQL. In addition, I developed an Angular client application to communicate and exchange data with the API. In the course of this project, I implemented the following photo-sharing application features: user registration, logging in and out with password encryption, posting pictures, giving a like and commenting on the picture, accessing profile, and account management. In addition, this application includes a security feature created using JSON Web Token. This feature protects users' account, resource, and privacy. To start this project, the first step was to plan and analyze the requirements of the application, e.g., posting pictures, accessing profile, and account management. This information was used to plan the basic project approach and to conduct product feasibility. The next step was to create a domain model diagram using UML (unified modeling language) in order to better understand the model relationships. I then mapped them into the MySQL database using the JPA (Java Persistence API). Next, I started the programming code to implement the API following the defined requirements and application architecture using Java and Spring framework. In addition, I added JWT (JSON Web Token) Authentication & Authorization to secure API. After that, I used the Angular web application framework to build a client application to talk to the API. Finally, the application was tested using unit test on POSTMAN website. It met the defined requirements and features. Throughout the course of this project, I learned much about database configuration, Java Spring framework, and Angular web application framework. The further significance of this project was that I was able to experience the whole process of full-stack development while developing a real-world application.

 

 

 

 

 

 

 

 

 

 

 

Updated December 16, 2020