Since August 2020, I have been learning mainly about creating web applications using Java and Spring Boot. From what I learned in that process, I created an app with simple functions as a portfolio, so I have summarized the functions, production procedures, and issues for that application.
Although it is incomplete as a function that has not been implemented yet and a function including usability,
・ Produced by the deadline of production and release within 2020 ・ Anyway, release once
Since we placed the highest priority on, we have released it once.
The production period is from 11/22 to 12/15 AWS learning, until deployment is completed 12/16 ~ 12/30
Overall, it takes about 5 weeks to publish.
"Ticket sharing management system" between indie bands and live houses
TicketManagerTool
GitHub https://github.com/KeitaUenishi/TicketManagerTool.git
Although it is a portfolio, I wanted to create something that could actually be used, and something that could actually solve the problem from my own experience.
I have been in a band until I was 27 years old, and I have appeared and hosted various events centered on live performances at live houses. When performing at a relatively small event, the customers who come to the event are basically in the form of "layaway".
・ Contact the band directly instead of the live house, tell them the name and number of tickets, and reserve the ticket. ・ The band manages the reserve list ・ Fill in the visitor list on the day and submit it
It has become a flow, It was common for customers to tell their name at the entrance on the day based on the list, settle the payment, and enter.
The big problem with this mechanism was that I felt it.
・ The total number of visitors cannot be read until the day of the event. Each band appearing in the event manages their own tickets, and they contact a considerable number of customers as they engage in daily activities to attract customers. Therefore, in order to accurately grasp the number of visitors, it was necessary to manage the constantly changing number on a daily basis, which was troublesome. Due to the time and effort, it was often the case that the visit forecast was basically known only on the day of the event.
・ In some cases, the live house will be contacted directly, and they will be managed by the live house. As a result, management such as cancellation must be distributed and close contact must be made, which is troublesome.
From such points, I thought that these problems could be solved if there was an application that could easily add, edit, and delete the visitor list on the Web.
Also, in the current situation where there are restrictions on admission to the corona virus, it is essential to know the number of mobilization, but Since it is difficult to grasp the mobilization that changes every day as it is, the performers and the live house side are in real time. I also thought that it would be convenient if there was an app that could check the number of mobilizations.
・ Simple login function, list display of live schedule
・ Display of visitor list for each live schedule
・ Validation check of each item, CRUD processing
First of all, we selected the development environment and defined the requirements.
◦ Language Java1.8 ◦ Framework Spring Boot2.4.0 ◦ Database MySQL5.7 ◦ Test JUnit4 ◦ Version control Git GitHub
What was defined before creation
Must function --Registration of live schedule --Add customer information to the registered live schedule --Implementation of login function if possible --A function that allows the customer to select the live schedule of the app and register the name (register from the screen without logging in). --A function to check if you have visited the venue and check if the payment has been completed. --Login account creation (shared only by performers of each performance) function --A function to count the number of visitors to each schedule and display it at the top of the page or in the live list.
After learning how to make it, Created by hand on A4 paper with an emphasis on speed for simple content
Create a rough Gantt chart with Trello based on the defined requirements
The progress is recorded in the Google calendar at any time and compared with the Gantt chart for management.
I wrote the code earnestly and proceeded while fighting the error. Unlike the learning of the tasks so far, you do not even know what to ask if you do not actually understand, so to be precise, learning based on the question → question → answer, verification → error resolution is repeated earnestly It is an image.
Where is the problem and how do you isolate it? I realized that the ability to formulate hypotheses and verifications and grasp the problem accurately is really important.
When it comes to screen implementation, we just use Bootstrap to get the minimum look. (I wanted to stick to more things if I could afford it, but I put it off because it was my top priority to publish it as a moving object)
https://qiita.com/hiren/items/2a4f1b55c99ebfb3fd08 Build the environment by referring to this article.
After setting EC2 and RDS Install Tomcat 9.0.41 on Amazon Linux2 and deploy to webapps.
404 error due to bad build 500 error due to not being able to load the Mapper.xml file that can be loaded locally Garbled Japanese characters due to RDS language setting While suffering from errors such as, each is resolved and released. (I will summarize these contents in another article in the future)
** As many people have already said, I realized that actually making it is the most educational thing. ** **
So far, I have learned while copying various applications by referring to articles on the net, but I can implement it even if I do not understand much about the flow of processing while copying. I will.
However, when I decided the functions myself and proceeded with the implementation, there were many cases where copying sutras alone could not help. In that process, we will calmly isolate the problem, ask questions, and verify it.
Then, the sense of accomplishment when it can be solved also hits the problem again in a short time, and while calculating the remaining time back, it separates what can be done and what cannot be done. I was working on these experiences, thinking that I wouldn't be able to experience them without actually making them, and that they would always be required in my actual work.
I will continue to study while being aware of these things.
Since there are some functions that could not be implemented and it is incomplete, I will keep a memorandum of future issues.
Currently, when registering a live schedule, if you enter a date other than 8 digits, validation check will be applied, but if it is 8 digits, you can register any number. It's closed.
I try to make it memorable by commenting out every time I make corrections such as errors, but there are many things that other people think that they are messed up and do not understand the intention. If you write code that does not convey your intention in actual work, it may hinder development, so we will try to write code that can be communicated to people while refactoring in the future.
As you may have noticed, I've already misspelled the project title TicketMan e gerTool on GitHub (I noticed it was in the deployment stage, so I've left it as it is ...). I've often been stuck with very rudimentary parts such as typographical errors and misspellings, so I'll try to be more accurate, including naming classes and methods.
I was thinking that smartphones would be the main situation to actually use, but responsive support etc. have not been incorporated and the screen display is very small. We are thinking about fixing this as soon as possible, but we regret that we should have thoroughly identified the use cases in advance.
As mentioned in the function explanation column, the login function has been implemented halfway due to insufficient learning about Spring Security. We plan to add this as soon as possible.
To be honest, there are no points to reflect on or improve, but as a result, I feel that ** actually creating an application ** was the most efficient way to learn.
** Above all, the sense of accomplishment when it is completed in any form is pleasant! ** **
I still have applications and ideas that I want to actually make in my head, so I would like to continue learning while actually shaping them!
Even if you are learning programming from now on, I recommend that you try to actually create an application with simple functions once you have some understanding of it!
I would be very happy if those people could see this article and inspire me! It's a long sentence, but thank you for watching until the end!
Recommended Posts