This program presents a web page to a user, allowing them to search through a SQL database of films, and add, edit, or delete a film outputting the result based on the chosen search criteria, and returns the attributes of the film back to the user. The focus of this project is getting familiar with Spring MVC and Gradle, as well as building upon concepts from previous projects using SQL, data accessor objects, Model View Controllers, building dynamic webpages, and OOP fundamentals.
- Java
- MySQL
- Gradle
- Spring MVC
- Bootstrap
- JDBC
- DAO
- Classes
- Objects
- Interfaces
- Exception Handling
- When ran, the program will prompt the user for input based on how they would like to search the database of films.
- Based on whether the user chooses to search based on the ID number or keyword, the program will request the appropriate search criteria from the SQL database.
- From the list of films displayed, the user can choose to edit any film presented or delete the user-generated films
- In order to edit your film you need to press the details button first then hit edit in the upper left hand corner.
- If the user chooses to input a new film, they will be presented with a form to add information about it. Once submitted, this film will be added to the database and will be available in search.
- Once finished, the user can return to the home menu and continue their search.
- Voila, you're done!
This was the first major project I've worked on in tandem with someone else, and it was a great experience.
It was interesting breaking apart a project and having someone to rely on throughout to be able to get input and suggestions from, as well as keep things on track. I initially had trouble from this week's lecture, because a lot of the information felt foreign, and I couldn't wrap my mind around some of the technologies and material presented.
Taking the time to review and connect some of the ideas helped a lot, but diving into this project was where I gained the most value.
From creating command objects and understanding how the controller handles the presentation of webpages, to working more on dynamic webpages and having them communicate with a database, each part presented a challenge that helped me grow more as a developer.
Working on multiple files and having them communicate with each other is daunting at first, but focusing on one area helped bring things more to light.
It was interesting seeing the program work while abstracting parts of it, hoping that they would connect when ran.
I would regularly have to stop and check to make sure things were working, or trust that the program would know what to do or give me the right output for troubleshooting.
I still have many questions about the best practices of how to implement parts of the program to make things more concise, and there are still plenty of features I would love to learn how to implement, but given the timeframe, I've picked up a lot of useful tools and learned a lot from this project and I look forward to working on more in group settings.
This project was a lot of fun though it was also a lot of work. The largest challenge was communication on the parts to be worked on to resolve any conflicts. The project really cemented the MVC and peak my interest in other patterns like MVP/MVVM to see the differences. I learned the most in the project moving all the data around as properties to views. As well as, passing properties to multiple views through use of redirects to allow people to return to previous searches.
I really like how the project helped me to understand this last ~2 weeks of course material as it was all fuzzy leading into this. Working as a duo team was really stressful and somewhat challenging for me. I like to cowboy up and just get things rolling but the team priority for me was for us both to learn and get experience for the future.