[PYTHON] A story about a beginner participating in a project by Django from team building to product release in 6 weeks

Introduction

This time, in 6 weeks, I participated in a project from team building to product release. Please refer to the individual articles below for what I was in charge of in the project and the skills I learned in particular.

Around authentication, if you look sweet, you will see painful eyes (try to introduce authentication using django-allauth) Impressions and memorandum when I introduced VScode for the first time I'm ignorant about Git, so I'll summarize what I experienced Talking about the features that pandas and I were in charge of in the project

Here are articles about the entire project, the deliverables I made, and myself.

What I made

EARY MORING STAR

The project was planned by Saku731. Since some of the participants were in-service accountants or majoring in data scientists, it was decided to create a ** investment trust support tool ** using web scraping.

As a usage method

  1. Answer a simple questionnaire to find out your investment type
  2. Membership registration

Only this.

As a function

--Simple self-analysis of investment type --Creation of investment portfolio --Analysis of investment portfolio --Display of stocks with similar risk / return for a stock --Display of other brands owned by the user who owns the brand for a certain brand --Acquiring popular stocks from the portfolio DB (Popularity of "stocks actually bought") --Acquire popular stocks from browsing history DB (popularity of "common stocks") --Addition of investment trust browsing history

And so on. Below are some screenshots.

2020-07-06_03h30_32.png 2020-07-06_03h30_25.png 2020-07-06_03h31_37.png 2020-07-06_03h32_50.png 2020-07-06_03h33_27.png

I'm not in charge of scraping, and I'm not a skill, so I don't know the details.

  1. CSV output scraping result
  2. Register CSV in DB with Util
  3. Output to DB locally + Push to Github

It seems that it is realized in the form of. The reason is that the person in charge left the project for various reasons, and not only this function but also the task was carried over, and as a result, I got the impression from MTG that it was a painstaking measure because the time was up. I did. The person who took over was a pretty strong person, but it seems that he did not have enough time.

Regarding this project, the deliverables from the above URL can be used by participants as their portfolios for job hunting and job hunting.

However, for that reason, it is a rule that the repository will not be open to the public, so please understand that. By making this public, if multiple people among the participants use this deliverable for job hunting, isn't it a so-called plagiarism? It seems that it is a measure to prevent unnecessary misunderstandings on the employer side.

However, in the meantime, each participant will set up a server with EC2 etc. and operate it, so in that case, after explaining the circumstances, cloned it to your own repository if requested by the employer. It may be that things are published. It is said that you can publish the code for the part you were in charge of, so it is published here and there on each function page.

About me and the motivation for participating in the project

Motivation for participation

Currently, I am aiming to get a job as a web engineer from inexperienced, but in the interview that is not going well due to the handicap of career and inexperience

** "There are many things you can't understand without experience in team development" **

When I actually made the deliverables myself, there were not a few questions such as what other products are available for making deliverables individually and how much to make in the first place. Because

** "I want to gain experience in team development and knowledge about product model cases and development procedures" **

I was just interested in Python, so why not take this opportunity? I decided to participate with that in mind.

My skills and what I did to participate in the project

This project is ** team development using Python and Django **, but my skills at the start of the project in mid-May are

Self-study history to become a web engineer from inexperience ~ First portfolio creation record Production record ~

I was able to make something like this.

I started studying Python and Django one month before the project started, and I was at the level of the following articles. Click here for Python and Django learning history

Other than that, I mentioned a little about myself in the above article, so I would be grateful if you could refer to it.

Project flow

The project was carried out in a total of 6 weeks, and there was an MTG at the beginning of each week, where progress was confirmed and tasks were adjusted. Below, I will roughly write what I did each week.

Week 1 (5/16 ~)

What i did

--Overview of the project --Set project goals --Personal goal setting sheet entry --Comprehension check before project start --Determining the service to be developed in the project

Since the number of people gathered unexpectedly here and because all the people gathered were strong people, we decided on a service in the direction of doing web scraping that we should not have done at the beginning. In addition to the above, the design staff worked on requirements definition and design this week, and the PG staff and those with poor skills like me worked on tasks to learn the basics of how to use pandas.

Weeks 2-4 (5/23-)

What i did

--Task allocation --Implementation work

From here, it was the process of implementing the assigned functions. I'm in charge

--A function to extract and display stocks with similar risk and return --A function to extract and display other brands owned by the person who owns this brand. --Authentication function (Social login failure occurred in the production environment at the time of release and it could not be resolved, that part was cut) --Creating a temporary screen with the above three functions --Authentic copy of authentication screen (compatible with responsive smartphone display)

These are the above three, I wrote what I did in a separate article for each function.

Week 5 (6/13)

What i did

--Repair of small parts for clean copy work and release of each screen

My charge is as follows

--A clear copy of the screen related to authentication (login / account creation / logout confirmation screen)

Week 6 (6/20)

What i did

--Final adjustment for release

My responsibilities are as follows.

--When the create button is pressed, the questionnaire results are linked to the registered users from the session.

Week 7 (6/27)

Work completed, review and impression battle by the final MTG

What I learned from the project

--Team development process --Team development using GitHub --Development using VScode --Skills about pandas --Basic knowledge and process of requirements definition and design --Basic usage of PipEnv --Implementation work in Django --Database operations in Django --Code of code comment including dock string etc. --How to build and deploy EC2 environment

Regarding the last, even if I receive an explanation, I have no prerequisite knowledge about AWS and I have little understanding of deploying repositories with PipEnv, so I have not been able to do it myself yet, so I will do it after I finish it. I will.

Impressions I tried

First of all, what I thought when I actually started working on the project

** I don't know too much about things (especially knowledge around infrastructure such as GitHub and VScode) **

It was that. The participants this time were all quite strong, and for me, who participated in a state of climbing a snowy mountain naked in the first place, what I did not know was a state of common sense over there. So there was tremendous pressure throughout the project that it wasn't overwhelmingly competitive. This is not because the participants put special pressure on me or bully me, but because of my guilt feeling that "it often takes time and effort instead of being useful ..." is. Around February to March, I had an interview with a company for job hunting, but at that time I occasionally touched it.

** Hiring an inexperienced engineer is too risky **

** Even if it is adopted, it will be laid down at least for one year. But even during that period, I get paid, and I'm afraid that if that happens, I'll feel the pressure of not being accustomed to the force of the people in the field and it will be ruined **

I was asked to do something like that, but I realized that this is what it is. Even so, I managed to keep up with the part I was in charge of at least every week ... As a result, with the cooperation of the tech leads, only the social login part issued an error in the production environment and was deleted. However, I want to think that I was able to do only the minimum work. I think that I wrote about the points of reflection and missing points in this article and individual articles, but the other thing I regret is that I could not afford to write the test code. Actually, the test was done with GitHub Actions because there was a person who automated it, but after all it is cool to be able to do that, and I have the impression that it is finally full-fledged until the test, so after all I felt that my teeth were sick because I couldn't handle it that much.

I wrote it as a painful thing, but it was not so painful, the project itself was very educational, and above all, being able to experience development as a team was very valuable and fun. I can see the code written by other people in Pull Request etc., but how do you actually do it with the function you were in charge of? I was able to refer to that, and I had never received a code review in the first place, so everything I did was fresh.

In the future, we will have to deploy this to the EC2 environment soon, so while supplementing the knowledge for that, we will revive the social login that was omitted in this release, and improve the user information a little more. In the first place, web scraping was untouched this time, so I think it's good to look at the code to see what it looks like.

After that, I'm looking for various things that I have to move toward job hunting again ... I would appreciate it if you could tell me something about employment.

Last but not least, I would like to thank all the planners and project participants who were willing to accept beginners like me as well as good people.

Recommended Posts

A story about a beginner participating in a project by Django from team building to product release in 6 weeks
A story about everything from data collection to AI development and Web application release in Python (3. AI development)
A story about a beginner making a VTuber notification bot from scratch in Python
A story about a Linux beginner passing LPIC101 in a week
To myself as a Django beginner (1) --Create a project app--
A story about trying to introduce Linter in the middle of a Python (Flask) project
How to reference static files in a Django project
A story about a Python beginner who was about to be crushed by ModuleNotFoundError: No module named'tweepy'
[Django] A story about getting stuck in a swamp trying to validate a zip with form [TDD]
A story about how to specify a relative path in python.
A story about trying to implement a private variable in Python.
A story about a tragedy happening by exchanging commands in chat
A story about a GCP beginner building a Minecraft server on GCE
Deploy Django + React from scratch to GKE (3) Create a GCP project
From installing Ansible to building a Python environment in Vagrant's virtual environment
A story about how to study English by a stupid student in grade Biri who raised his TOEIC score from 300 to 840 in a year and a half.
Steps to create a Django project
A story about someone who wanted to import django from a python interactive shell and save things to a DB
A story about creating a program that will increase the number of Instagram followers from 0 to 700 in a week
How to get a namespaced view name from a URL (path_info) in Django
A story about a beginner trying hard to set up CentOS 8 (procedure memo)
Escape from Python's virtual environment ~ A story about being trapped in a virtual environment I created ~