[Ruby] Rails Portfolio Implementation-Requirements Definition-
We will share the procedure and details as output of learning for each process in portfolio implementation, so we hope you can refer to it as an example.
・To eliminate "I understand"
・To get the opportunity to receive feedback
・In order to firmly establish the obtained information in yourself
・Because it becomes possible to judge the really necessary information from a lot of information
1. Requirements definition (specification decision, Gantt chart creation)
2. Design (screen design, DB design, URL design, task separation)
3. Implementation (lots...)
As mentioned above, I think that it is necessary to divide the 3 processes into several articles because the contents are branched at each process. By the end of creating the portfolio, we plan to output a rich content with about 10 articles in total.
Also, since it is not necessary to output all the implemented parts, I will write down the functions and errors that I determined to be difficult or interesting, and need to be recorded.
# What is a requirement definition?
> Requirement definition is to consolidate requirements and decide a concrete way to proceed before the full-scale development process. In system development, the goal is to fulfill the demands of users.
>Therefore, before starting development, it is necessary to decide the functions and performance to be implemented. The requirement definition is necessary before the full-scale development process to decide how to proceed concretely.
Although it is difficult to write, what I implemented as a requirement definition in the individual portfolio is to "specify" what functions and technologies to implement and use for the service and schedule management "create Gantt chart". There are only two.
## Specification decision
As below, we will decide the details from concept to infrastructure.
As a result, I recognize that it will be quite difficult for me to create a work of scale.
In terms of differentiating, I myself have some experience as a security engineer in vulnerability diagnosis, and I would like to somehow implement the built-in automation of vulnerability diagnosis.
Word-of-mouth service connected through stage theater
・Ruby / RubyonRails 5
・Bootstrap or vue.js
Local (Rubymine -ver 2019-3)
[Functions to be implemented]
・Login/Logout function (devise)
・Post function with images (stage you saw (review), stage you want to see (expectation and comment))
・Post editing function
・Post list display function (pagination)
・Ability to collectively display reviews related to the same stage
・Average score display function for the same stage
・Averaging point display function for user reviews
・Post details display function (editable if it is your own post)
・Post comment function
・Star rating function
・Profile editing function (with icon image)
・Like function (asynchronous processing)
・Follow function (asynchronous processing)
・Direct message function
・Keyword search function
・Prefecture screening function
・Map search function (google map API)
・Admin user login function
・DB table relation management
- DB transaction control function
・Unit test function
・Integrated test function
Stage 1: Heroku
Second stage: AWS
Third stage: Introduce Docker to the development environment
Stage 4: Build CI/CD pipeline using CircleCI and test automation
Built-in automation for vulnerability diagnosis, if you can afford it
Also, once you have decided on the details, we recommend that you have an actual engineer, etc. review the portfolio development in advance at a school or online salon.
The reason is that if there is a problem at the time of specification specification and if development is continued, it may not be possible to fix it later.
I was worried about devising a service concept in the specification decision stage, and I was worried about the fact that I could not decide a concept with originality, so I consulted on that point and asked for a preliminary review, I was able to remove concerns about the implementation.
>-------------------------- Excerpts from the following review content ------------------ --------
I think it's easier for companies to respond to the theme of "solving problems that I felt very strong in the past career," but since each person makes their own decisions, this theme is also important. I think there is no problem.
Since it has become "only general functions that almost anyone can implement at least in the portfolio", companies with higher impression and more practical functions are evaluated by companies. I think it's easy to get high.
[Minor food engineer salon](https://kentakatsumata.net/archives/10)
## Gantt chart creation
I used a Google Spreadsheet template to sketch up my last appointment.
We assume that the portfolio creation period will be about two and a half months, but it is necessary to change jobs, so I would like to continue working on it.
At the time of creating the Gantt chart, it is necessary to think about how much time I can devote to development every day and complete it by comparing it with the reference time of each process Seems to take time.
It might be better to use a solid task management tool, but because of the portfolio, I made it the easiest Gantt chart for me. I think there are individual ways to manage tasks, so please use it as a reference.
The above is the output regarding the requirement definition.
*By the way, I think the requirement definition will be completed in about 2-3 days!