It's been about a year and a half since I started learning to program. I could release my first projects as a side job!
This project started suddenly.
Six months ago. I was applying for a job creating a company website with WordPress because I had confidence in WordPress Development.
In the selection meeting, I told the client that 'I can not only develop with HTML/CSS but PHP and Laravel'. The client was amazed and ordered me to create a Web System with Laravel.
I was delighted and said 'YES!' but was very anxious because I have not experienced development with Laravel as work.
From that day. I have written the code for as much time as possible. As a result, I could release this project today!
I'm so happy that my hard work paid off!
I want to remember this pleasure. I review my work for this project!
First, I write this project overview below.
- Created web service with Laravel and JQuery
- Use a Japanese web hosting service (Xserver) for deployment.
- Need multiple authenticate (regular-user, admin-user) and pages, respectively
- Two types of regular users. One can create and manage the project. Another can join and support the project.
- Need payment function with Stripe.
The theme of this project is 'cooperate'. The client hopes many people cooperate and archive respectively subjects in using this web service.
I didn't know I was still a beginner.
This system would be simple, but it's complex for me. That made me realize my programming skill level is how low in this development many times.
For example, I had a hard time creating multiple authentications. I could find many articles about how to code it. But I couldn't understand deeply.
After all, I copied and pasted code many times without thinking until I could create that. Fortunately, I could finish, but I still need to understand why that code works fine. I must study authentication for Laravel again.
The uploading images function also made me in trouble. That function was used on a lot of pages in this system. I wanted to develop with common function, but that design is different. It took more time to create the common component than I expected much.
Database Design is too difficult.
I realized bugs caused by mistakes in database design many times in development. For example, 'Name' column was defined as integer, and there were the same data in few tables.
That let me know how important to normalize and spend time designing the database before coding.
Changing database design affects a lot for production. It makes almost all of the development members in trouble sometimes. Fortunately, I could change database design easily because this project had only one software engineer me.
I will spend time designing the database in the next development.
Go next project!
This development is an excellent experience for me. Of course, there were many things to make me hard, but I could grow much.
I want to keep doing my best.