[PYTHON] Development of MTG card evaluation posting site ~ Django app release in 5 weeks ~

Introduction

The other day, I participated in a study session project called "Web service release people gather in 5 weeks! Only for people who can reach LT", and after developing and releasing Web applications for about 5 weeks, we announced the deliverables at LT. .. In this article, I will introduce the functions of the created Web application, the development process, and what I felt when I participated in the project.

Study session planning URL (connpass): Web service release people gather in 5 weeks! Limited to those who up to LT (changed to online holding!) Web service release people gather in 5 weeks !! LT presentation

Overview of the created web application

This time, we created a site to post card evaluation comments for the trading card game "Magic: The Gathering (MTG)".

URL of the created web application: MTG Card Evaluation Posting Site

スクリーンショット 2020-05-17 14.41.08.png

The concept itself has been around for a long time, and after seeing a site related to Duel Masters called "DMvault", I thought it would be great if MTG had a function called "card evaluation collection" in it. I challenged.

The main functions are a sign-up / login function by registering an e-mail address and password, a comment posting by a login person, and an edit / deletion of one's own comment. Non-logged-in users can only view comments, and cannot post, edit, or delete comments. Regarding the sign-up / login function, there is also a function to send an authentication email to the entered email address to complete registration via email, and a function to send a password reissue email to the email address.

Background of web application development

I learned about this project while learning Django to get in touch with modern technology, and I wanted to get used to it and release an original web application on the web. During the period, we held a weekly mokumoku-kai and deliverables announcement via Discord voice call, and after completion, we made an LT announcement on Discord. In the development, we refer to the following books, and basically it is a modification based on the sample application created in the book.

Reference book: Move and learn! Introduction to Python Django Development

Main technologies used

•Django A web app framework that runs on Python. I chose Python because of the vague image that the modern language is Python, so I haven't compared it deeply with others. Although it is a sale of reference books, if you want to make a membership-based web application, Django, which originally has functions such as sending authentication emails, seems to be more suitable.

•Bootstrap A CSS framework developed by Twitter. I just applied the free template, but I was surprised that it can be easily displayed on smartphones and tablets.

•PostgreSQL It is an open source relational database. SQLite3, which is used by default in Django, has a problem when the data becomes huge, so I will use this.

•AWS It is a cloud service provided by Amazon, and this time we are using EC2 instance as the release destination virtual server and Amazon Simple Email Service as the mail delivery service.

Good thing to participate in the project

――We were able to maintain our motivation by setting a deadline for completion within about 5 weeks and a pace management of announcing progress once a week. ――I was able to notice and understand the points that I could not understand just by tracing the book in the process of incorporating the original screens and functions. ――For example, I didn't understand the concept of migration that automatically creates and manages database definitions, so I had a hard time preparing the original table, but as a result, I was able to realize it as I wanted. .. ――First of all, I was able to publish the original web application for the first time.

Future tasks

--Some of the value passing from screen to screen does not work, and in some cases, there is a part where the value is passed from the previous screen to the URL, so it needs to be improved. ――The screen transition is unfriendly, such as there is no back button, and there is also the problem of returning to the previous screen after posting a comment (otherwise it will throw an error). --There are a lot of functions that should be there but have not been implemented. --Obtain the card set list and card list data from the official API (currently, each one is manually registered in the DB) --Card and comment search form --Ranking display of cards with a large number of comments posted

There are a lot of rough points because the deadline has been set and I'm still a beginner with Django.

Finally

I was worried about the development of Django and AWS because I was almost an amateur, but I was able to acquire various knowledge and valuable experience through this project. If you find any mistakes in the description in this article, please contact us.

Recommended Posts

Development of MTG card evaluation posting site ~ Django app release in 5 weeks ~
Exclusive release of the django app using ngrok
Django + MongoDB development environment maintenance (in the middle of writing)
Learning history for participating in team app development in Python ~ Django Tutorial 5 ~
Django cannot be installed in the development environment of pipenv + pyenv
Learning history for participating in team app development in Python ~ Django Tutorial 1, 2, 3 ~
Learning history for participating in team app development in Python ~ Django Tutorial 6 ~
Learning history for participating in team app development in Python ~ Django Tutorial 7 ~