[Today’s Coding] Step2. Planning - project design and conception
‘Today’s Coding’ mailing service made with JAVA 17, Spring Boot 3.0.2, Gradle, MySQL, and Redis
How will the project proceed?
First of all, Jira epics are largely composed of 11 chapters, and the order is as follows. If you ask why I use Jira when I develop alone, it is because it is a habit I will need when working on team projects later. And it can be said that this is because I decided to record the entire process of the project in more detail than last time, and I am making a habit of writing a blog according to the Jira development sequence.
I have organized the epics in an order that is convenient for me, but the sub-tasks may be included in a sprint depending on the situation.
(And it's just my feeling, but since I use Jira, even though it's a solo project, I like it because it feels like I'm working at work, as if I'm clearly checking and completing the assigned tasks...)
The overall target project schedule is scheduled to last approximately 1 to 2 months.
Step2. The project environment settings and design part correspond to settings, and overall, I wrote down the parts I wanted to organize before proceeding with the project.
As I work on a project in a company, I see that if these aspects are not properly addressed, requirements may be confused during construction or unnecessary problems may arise due to incorrect ERD design.
(I want to make a logo in advance, but... hmm... I can't think of anything right now, so I'll slowly create it and update it.)
Technology stack settings
I plan to write this at the top of each blog post, but I have decided to use JAVA 17, Spring Boot 3.0.2, Gradle, MySQL, and Redis as the technology stack, and I plan to draw the architecture while writing a readme. Well... I'm considering AWS for distribution, but considering the situation, I think I'll choose Cafe24 or one of the two.
Why are you using this technology stack?
- First, I needed a language and framework that I could develop quickly, so I used Java and Spring, which I was familiar with.
- Since I have only used versions of Java and Spring Boot that are lower than the ones currently being used, I would like to learn about the differences while working on this project.
- MySQL is a widely used RDB and is also a database I am familiar with.
- While studying Redis the other day, I decided to build a Redis and Write-Through type server. Since the current project requires the role of taking a large amount of DB with little change and distributing it to the view layer, I wanted to use an in-memory format database. (This is the main reason!)
Requirements definition
Actually, I think this part will change and increase a lot as I make it, but for now, I focused on the functions needed in the big picture. Since it was written mainly for back-end functions, the front-end functions will be changed and adjusted flexibly according to what was envisioned.
In this project, administrators can also register and delete almost all functions. Therefore, the proportion of common functions rather than user-specific functions is high, and only users in the administrator role will be able to partially manage aspects necessary for service management.
| division | service | Function name | Function details |
| commonness | main page | Service discovery filter | Add service listing conditions |
| Service Search | Service Search | ||
| Detailed page | Apply for service | Service application - Service start schedule can be added | |
| Cancel service | Cancel service | ||
| Service comment function | Service rating and comment function added - service applicants and registrants can comment | ||
| Edit service details | Modification of service details (description, content, etc.) - Not possible if someone has applied and is taking the course | ||
| Delete service | Service deletion is only possible for registered users - When deleting, instructions will be mailed to the applicant. | ||
| service keep | You can bookmark services you want to keep | ||
| log in | Social login function | Social login integration (Google, Naver, etc.) | |
| join the membership | Socially linked membership registration | Socially linked membership registration (Google, Naver, etc.) | |
| My page | Edit member information | Edit member information | |
| Service Management | Services are classified into ongoing and managed service categories, and there is a progress indicator bar. | ||
| Cancel service keep | You can view or cancel kept services | ||
| manager | Membership management | Check member list | You can check the member list and check ongoing services. |
| Block member | Blocking members and activity history that require management - Records such as comments are left, but processed so that they cannot be viewed. | ||
| statistics | statistics | Statistics on membership registration, service registration, progress, etc. | |
| Service details | Service History | Page where you can check mailed service details |
Write an ERD
It was written focusing on the relationships needed in the parts specified in the requirements definition. We will update if there are any additional needs or changes.
- User, service table status - indicates use as 0 or 1
- Progress table status - classified into application-ready, in-progress, and finished status.
- Log table: Matters that need to be recorded for management without leaving behind user role changes or other table changes.
Design project layout and select logo
Project layout idea
I couldn't make it more beautiful in detail, but since I can use Figma, I only created a simple screen design. Additional UI or colors? The details will be refined as more are made.
| Main page Detailed items page Detailed items Login/Sign up page My page Administrator Membership management page |
Choosing a Logo
I was worried about whether the logo should contain images of computers, logs, developers, etc., but when I think about the logos of various programming languages, I made it with things that the developer likes(?). I also wanted to create a logo by combining the 'C' in the code with an animal image. So, when referring to logos and UI, I found a logo I liked on a site I often visit, flaticon, and used it. Copyright is available for logos for commercial or personal projects.
According to the logo image, it will be composed of purple and orange view boards. The online tool used to extract colors from the logo image is TinEye Labs - Color Extraction Lab, see here.
Oko
We plan to shorten today's coding and provide a service under the name Oko. So, that cat's name is 'Oko', and I plan to use it as a medium to deliver the mailing service :)
Comments
No comments yet. Be the first!
164 posts in 테크
- 2233D Gaussian Splatting vs Unreal Engine: Two Ways to Build a 3D World — and Where Each One Ships
- 222LLMs Inside Unreal Engine: The New Skills Game Developers Need in 2026
- 220Living With Claude Fable 5: How the Most Capable Model Changes the Way You Actually Work
- 219Luma's Bet: From Video Generator to a Single Model That Thinks in Pixels
- 215The Best AI Video Models in 2026: Types, Differences, and Where This Is All Going