Zehranaz Canfes Weekly Efforts CmpE 352 - bounswe/2021SpringGroup9 GitHub Wiki
Week 1 (23.03.2021 - 30.03.2021)
-
Meeting: At the meeting, we put our total tasks in order and decided which of them are the most important ones and which of them are not that urgent. After that, we decided who will do which task.
- Duration: 1 hour
- Type of Work: Weekly Meeting
-
Task: Comparison between Slack and Discord to help the group decide on which to use. [Issue #14]. I found a lot of resources and made a wide comparison, shared it with the group under GitHub discussions: (https://github.com/bounswe/2021SpringGroup9/discussions/17)
- Duration: 1 hour
- Type of Work: Research
-
Task: Customize the issues' labels and create issues for the group by looking at everyone's task assignments for the week. I have created the following issues for my group and myself: Issue #12, Issue #15, Issue #11, Issue #10, Issue #9, Issue #8, Issue #7, Issue #6, Issue #5, Issue #4, Issue #3, Issue #2, Issue #1
I have also researched other GitHub repositories to see what kind of labels they have used. There are now 20 labels in our repository: https://github.com/bounswe/2021SpringGroup9/labels
- Duration: 1 hour
- Type of Work: Edit repository and research
-
Task: Create a personal wiki page. [Issue #11]. My Personal Wiki Page.
- Duration: 30 minutes.
- Type of Work: Wiki Documentation
-
Task: Check the meeting report and give feedbacks about it to Niyazi. [Issue #13].
- Duration: 10 minutes.
- Type of Work: Discussion
-
Task: Research about Git and create a research page for Git on wiki: Research About Git. I have watched Git For Ages 4 And Up on Youtube and written the most important commands to wiki. The 3D modelling approach for explaining git was very useful for me and helped me understand git better.
- Duration: 2 hours
- Type of Work: Research
-
Task: Research about different GitHub pages. [Issue #12] I have found The 10 GitHub repos new developers mention the most and chosen Awesome Python as my favorite repository: GitHub Repository Research.
- Duration: 1 hour
- Type of Work: Research
Week 2 (30.03.2021 - 06.04.2021) <\b>
-
Meeting: We had two meetings this week. In the first we decided on the requirements generally and in the second we decided on the details. We have distributed the tasks.
- Duration: 2.5 hours
- Type of Work: Weekly Meeting
-
Task: Read project descriptions and rate them (Issue #18).
- Duration: 45 minutes
- Type of Work: Research
-
Task: Creating issues for my tasks and for the team: Issue #28, Issue #29, Issue #32
- Duration: 5 minutes
- Type of Work: Issues
-
Task: Creating "Guest Entry", "Creating Posts", "Security" section of the requirements (Issue #32). The requirements page can be accessed here. I have researched info about security and passwords (here).
- Duration: 2 hours
- Type of Work: Wiki Documentation
-
Task: Taking notes for the second meeting this week. The meeting notes can be found here.
- Duration: 45 minutes
- Type of Work: Wiki Documentation
-
Task: Creating Related Software Systems page on wiki.
- Duration: 5 minutes
- Type of Work: Wiki Documentation
-
Task: Find similar products to our project (Issue #28). I have found various software but the most similar one is Storyspot. My comments can be found in Related Software Systems.
- Duration: 1.5 hours
- Type of Work: Wiki Documentation and Research
-
Task: Find questions to ask to the customer (Issue #29). I have done research about questions to ask to the customer. The links can be found in Links for Research.
- Duration: 1.5 hours
- Type of Work: Wiki Documentation and Research
-
Task: Add glossary to Requirements.
- Duration: 15 minutes
- Type of Work: Wiki Documentation
- https://www.kumulos.com/2015/12/17/20-questions-to-ask-your-client-before-you-build-their-mobile-app/
- https://www.synotive.com/blog/software-development-client-questionnaire
- https://dashdevs.com/blog/questions-you-should-ask-while-developing-a-software-product/
- https://spin.atomicobject.com/2020/01/24/new-software-project-questions/
Week 3 (06.04.2021 - 13.04.2021)
-
Meeting: Discussed the questions to ask the customer and edited some parts of the Requirements (Meeting 4).
- Duration: 1 hour
- Type of Work: Weekly Meeting
-
Task: Add repository description (Issue #51).
- Duration: 5 minutes
- Type of Work: Edit Repository
Week 4 (13.04.2021 - 20.04.2021)
-
Customer Meeting: We had a meeting with our TA about the Requirements and Questions to Customer. We presented our questions and got answers.
- Duration: 1 hour
- Type of Work: Customer Meeting
-
Meeting #1: Discussed the requirements and what to change about them. We decided on how the main page and other pages will look like and decided to create a template. We splitted the scenarios in 3 groups and I got the group to Create Posts Scenario. Meeting 5.
- Duration: 1 hour
- Type of Work: Weekly Meeting
-
Meeting #2: Each team has written the scenarios and thus we start to decide on the mockups. We created an Android and Web template and shared via Discord. We decided to expand the Requirement. Each team continued with the mockups and I was with creating posts team. Meeting 6.
- Duration: 70 minutes
- Type of Work: General Scenario and Mockup Meeting
-
Meeting #3: This meeting was among three people (Ahmet Melih Aydoğdu, Mert Alkan and me). We are the team to build the create posts scenario and mockups. We had a meeting where we decided on how Creating Post page on Android will look like and discussed how a user can add the date.We decided that there should be different sliders for each step. This way, users can add time as they remember it. We discussed the details of the scenario. We created a main page and create post template. Decided on how a user will create a post and share it. Some new requirements mentioned in Meeting 6 Report under Decisions 3. i, ii, iii, iv. will be added to the Requirements. Decided wiki page must be created for the mockup and scenario 1.
- Duration: 80 minutes
- Type of Work: Create Posts Scenario and Mockup Meeting
-
Task: I have researched different sites and applications for mockup drawing: moqups, marvelapp. These are not entirely free so we decided on draw.io.
- Duration: 30 minutes
- Type of Work: Research
-
Task: Create Scenario for Creating Posts (Issue #57). I have looked at different repositories and we talked within our team about the scenarios. We have built it step by step. I have written the Acceptance Criteria and expanded the scenario.
- Duration: 1 hour
- Type of Work: Scenario
-
Task: Create Mockups for adding People, Tags and Multimedia to the new created post. I have used draw.io for this. Creating Posts.(Issue #57)
- Duration: 2 hours
- Type of Work: Mockup
-
Task: Create wiki page for the mockups. Creating Posts Scenario & Mockup.
- Duration: 10 minutes
- Type of Work: Wiki
-
Task: Add the created mockups to wiki Creating Posts Scenario & Mockup.
- Duration: 20 minutes
- Type of Work: Wiki
-
Task: Create the web homepage for the Creating Posts Mockup. This can be accessed in Creating Posts Scenario & Mockup under Web 1).
- Duration: 45 minutes
- Type of Work: Mockup
Week 5 (20.04.2021 - 27.04.2021)
-
Meeting #1: This meeting I took notes. Discussed the requirements and what to change about them. We decided to update the requirements every week especially after we finish our diagrams. We talked about the diagrams and how to split the tasks. We decided that everybody should think of a group name this week and we will vote on the possibilities next week. We listed the classes and sequences we will need in the diagrams. We decided to use draw.io. We distributed sequence diagrams and classes among us. Meeting 7
- Duration: 70 minutes
- Type of Work: Weekly Meeting
-
Meeting #2: We held another meeting to come together and discuss the sequence diagrams and classes we created. We decided to merge them. We decided to add new requirements and created a task to learn more about UML for use case and class diagrams. We decided to have another meeting on Tuesday. Meeting 8
- Duration: 1.5 hours
- Type of Work: Weekly Metting 2
-
Task: Create Sequence Diagrams for search. Create classes for comment and tag. Issue #72
- Duration: 3 hours
- Type of Work: Diagrams
-
Task: Think about use cases and research other repositories.
- Duration: 45 minutes
- Type of Work: Use cases
-
Task: Properly learn UML for use case and class diagrams. I have done research on Use Case diagram that can be accessed in the "Links for Research" under this week. Issue #80
- Duration: 1 hour
- Type of Work: Research
-
Task: I have uploaded the sequence diagrams to wiki. Sequence Diagrams
- Duration: 10 minutes
- Type of Work: Wiki
-
Task: Adding liking comments and following private accounts requirements. Issue #79
- Duration: 20 minutes
- Type of Work: Wiki
-
Task: Take meeting notes of the first meeting.
- Duration: 30 minutes
- Type of Work: Wiki
Week 6 (27.04.2021 - 04.05.2021)
-
Meeting #1: We had a meeting with the TA at the offical PS hours. We discussed how our diagrams look and mistakes that we made. We decided that our sequence diagrams look different from each other and that there is no standard in our group. We designed the use cases wrongly and learned that we should add systems to our diagram.
- Duration: 30 minutes
- Type of Work: TA Meeting
-
Meeting #2: After the meeting with TA, we have realized the mistakes we made. We added more use cases and created subsystems. We grouped up and I was in the team to organize the sequence diagrams. We changed the diagrams to a standard by using this Document. After we organized the sequence diagram we joined the other group to merge the classes into the class diagram. We decided on the relationships between classes and finished the class diagram. Meeting 9
- Duration: 2.5 hours
- Type of Work: Weekly Metting 1
-
Meeting #3: After the diagrams are finished, we started with the Milestone Report. We have distributed the parts of the Milestone Report and decided to do the Project Plan and RAM together in the next meeting. Meeting 10
- Duration: 45 minutes
- Type of Work: Weekly Metting 2
-
Task: I have seperated the Search Sequence Diagram into User search and Location search. Issue #72
- Duration: 45 minutes
- Type of Work: Diagrams
-
Task: I have done more research on UML by using offical documentation of Unified Modeling Language
- Duration: 45 minutes
- Type of Work: Use cases
-
Task: I have uploaded the new version of the sequence diagrams to wiki.
- Duration: 10 minutes
- Type of Work: Wiki
Week 7 (04.05.2021 - 11.05.2021)
-
Meeting #1: We had a meeting with the TA at the offical PS hours. We discussed how our diagrams look. We talked about the Milestone 1 Report and how to write Executive Summary, Gantt Chart etc. We asked our questions. We decided to learn more about Project Plan and RAM.
- Duration: 1 hour
- Type of Work: TA Meeting
-
Meeting #2: We have started with the Project Plan. We left out the future plans for the next meeting. [Meeting 11[(https://github.com/bounswe/2021SpringGroup9/wiki/Meeting-11-Report-06.05.2021)
- Duration: 1 hour 35 minutes
- Type of Work: Weekly Metting 1
-
Meeting #2: We have discussed the future of the project and finished RAM together. Left out the parts of the Milestone Report will be done individually. Meeting 12
- Duration: 1.5 hours
- Type of Work: Weekly Metting 2
-
Task: Write "Moving Forward" part of the Executive Summary Issue #93. I have written the final part of the executive summary where I summarized and explained our future plans.
- Duration: 30 minutes
- Type of Work: Milestone 1 Report
-
Task: I have done research on CI/CD. I have used the things I learned in the executive summary.
- Duration: 30 minutes
- Type of Work: Research
-
Task: I have created the "Individual Work" part in the Milestone 1 Report where I have written my individual tasks and explained them. Issue #103
- Duration: 20 minutes
- Type of Work: Milestone 1 Report
-
Task: I have started to write the Table of Contents (ToC) in the Milestone Report but realized that there is a short way of writing it. I have made research about md files and how to write the ToC in html. I have used my knowledge to write it. While I was creating the ToC, I have organized the layout of the Milestone Report. Moreover, after I finished ToC, I realized that .md to pdf convertion disables the auto generation of the ToC. So I have researched some software to convert .md to pdf: Typora. I have organized the headings so that there is a standard in the ToC. Issue #99
- Duration: 2 hours
- Type of Work: Milestone 1 Report & Research
-
Task: I have copied the collabratively written part of the Milestone Report to Typora and organized the headings. I have chosen a theme for the document and asked the group for their opinion. I have changed the CSS file of the theme to avoid page breaks, misunderstandings in the report. I have added more html to md file and edited the layout. To do that, I have done research on HTML and CSS. As updates came, I have updated the document. I have resized the Mockup, Sequence Diagram, Class Diagram, Use Case Diagram images in the document and converted it to PDF at the end. I have compressed the file 2 times at the end: The smallest one is for moodle and the medium size is for GitHub. Issue #107
- Duration: 5 hours
- Type of Work: Milestone 1 Report & Research
-
Task: I have done research on Project Plan and RAM. I have researched Gantt charts and software to do the Project Plan on. I have looked at other repositories to learn. I have learned about ProjectLibre. We have finished the Project Plan in the meeting together.
- Duration: 30 minutes
- Type of Work: Research
-
Task: I have thought about a group name and shared it on Discussions.
- Duration: 20 minutes
- Type of Work: Research
- https://www.computerhope.com/issues/ch000055.htm
- https://meta.discourse.org/t/quick-image-resizing-and-markdown-image-dimensions/66812/19
- https://stackoverflow.com/questions/14675913/changing-image-size-in-markdown
- https://github.com/hakimel/reveal.js/issues/1349
- https://stackoverflow.com/questions/9238868/how-do-i-avoid-a-page-break-immediately-after-a-heading
- https://www.princexml.com/forum/topic/3538/avoid-page-break-after-heading
- https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-wrap
- https://css-tricks.com/text-blocks-over-image/
- https://stackoverflow.com/questions/44434797/page-break-after-page-break-after-property-for-div-elements
- https://pandoc.org/faqs.html
- https://stackoverflow.com/questions/11948245/markdown-to-create-pages-and-table-of-contents
- https://www.setcorrect.com/portfolio/work11/
- https://alexharv074.github.io/2018/08/28/auto-generating-markdown-tables-of-contents.html
- https://superuser.com/questions/601654/generate-document-with-table-of-contents-containing-page-numbers-using-markdown
- https://www.w3schools.com/cssref/pr_dim_line-height.asp
- https://www.invisionapp.com/inside-design/line-spacing/
- https://www.w3schools.com/cssref/pr_border-collapse.asp
- https://stackoverflow.com/questions/52983676/increase-the-editor-width-or-viewable-area-in-typora
- https://stackoverflow.com/questions/36121672/set-table-column-width-via-markdown/51701842
- https://developer.mozilla.org/en-US/docs/Web/CSS/white-space
- https://developer.mozilla.org/en-US/docs/Web/CSS/table-layout
- https://stackoverflow.com/questions/40213703/fixed-width-for-table-first-column
- https://css-tricks.com/almanac/properties/t/table-layout/
- https://www.w3schools.com/colors/colors_shades.asp
- https://developer.mozilla.org/en-US/docs/Web/CSS/fit-content
- https://www.w3schools.com/css/css_table.asp
- https://support.typora.io/Add-Custom-CSS/
- https://stackoverflow.com/questions/18621567/css-styling-a-table-of-contents
- https://www.gantt.com/
- https://www.projectmanager.com/gantt-chart
- Lecture Slides
Week 8 (11.05.2021 - 18.05.2021)
- SPRING BREAK
Practice App (18.05.2021 - 13.06.2021)
These weeks were the weeks where I worked on the practice app and learned a lot of new tools.
-
Meeting #1: We had a meeting with the group to discuss what to do in the next milestone with the practice app. We went over the important parts of this assignment and decided which tools to use based on our previous experiences. We chose VsCode to use in our project and we decided to choose which SQL to use later. We talked about the basics of the app. We thought about our previous mockups and decided to make this app similar to our main project. We designed the app to have a main page and a page from which people can view/search other posts. We talked about the importance of a map in our app. Our tasks for the next meeting were to learn/research git, Docker, Django and to find REST APIs to use in our app. We decided to have a meeting with the TA. The notes for this meeting can be found here.
- Duration: 1 hour 45 minutes
- Type of Work: Regular Meeting
-
Meeting #2: We had a meeting with the TA about the general aspects of the project. We talked about the importance of Docker and planned what we could do next. We asked some of the questions we had during the last meeting and talked about how to use git.
- Duration: 1 hour
- Type of Work: TA Meeting
-
Meeting #3: Everyone made a research about Django and we decided to use it since we also used it in our other class. We decided to use 3 external APIs, namely, Instagram, Twitter, Google Maps. We planned our workflow during the practice app. We decided to follow the instructions for git explained here. Everyone will open branches for their APIs and we will merge it at the end. We planned an outline of the project. The details for this can be found in the Meeting 14 Report. We decided on the functionalities and distributed among each other.
- Duration: 1 hour 15 minutes
- Type of Work: Regular Meeting
-
Meeting #4: This meeting with the TA was about the first milestone and the mistakes we did back then. We have gone over the important parts for a report to have and listened the feedback for the first milestone report. We learned the mistakes we made and we will try to do better in the next milestone.
- Duration: 2 hours
- Type of Work: TA Meeting
-
Meeting #5: We talked about how to build the database. But since this doesn't effect our code too much and with Django we don't need to change files except settings.py, we decided to postpone this decision. We can use MySQL or PostgreSQL. Since everybody wrote their own model at first, we decided to create one that is in common in everyone's code. We made a model for Story and pushed it to the master branch in the meeting. We discovered that some API keys were public in our repository. So, we changed those keys and put the API keys in the .env file. We decided to be finished with the API implementation and testing by Thursday and open PRs by then.
- Notes: Meeting 15.
- Duration: 1 hour 30 minutes
- Type of Work: Regular Meeting
-
Meeting #6: Everyone showed and explained their REST APIs and we discussed what is necessary for the practice app and what is not. We decided to organize the story posting feature and use Swagger more. Some of us, including me, implemented other models for the use of the API, we decided to include them also in the database. We have finished reviewing the PRs. The most of time, we struggled with merging the views. After 3-4 merges, we understood that our approach was wrong, so everyone created views and tests folder and put their Python code under them. This way, number of conflicts decreased. We decided to add requirements.txt, I took that responsibility and we decided to split into two groups: Frontend and Docker.
- Notes: Meeting 16.
- Duration: 3 hours 20 minutes
- Type of Work: Regular Meeting
-
Meeting #7: We informed each other about the progress in each team. We decided to open a new PR (improvement) for the changes in the code. Every team will continue to work on their tasks and we will deploy the app after everyone learns AWS.
- Notes: Meeting 17.
- Duration: 40 minutes
- Type of Work: Regular Meeting
-
Meeting #8: Some of us added new DocStrings to their codes so that it can be seen from Swagger. We opened PR for the Frontend and will review it and then merge it. We merged the improvement branch to master. We tried to deploy the app to AWS and were successful. We will wait for the frontend to finish and then deploy the whole app. I opened a wiki page for documentation and written my documentation there.
- Notes: Meeting 18.
- Duration: 1 hour 40 minutes
- Type of Work: Regular Meeting
-
Meeting #9: We talked about the practice app deliverables and planned what is needed. Everyone will write their own part to a Google Docs sheet. We merged front end branch to the master.
- Notes: Meeting 19.
- Duration: 1 hour 30 minutes
- Type of Work: Regular Meeting
-
Meeting #10: This was the meeting one day before the Milestone 2 report deadline. We distributed the tasks. The details can be found here.
- Duration: 1 hour 40 minutes
- Type of Work: Regular Meeting
-
Task: I have made a research on Twitter API and how to use as we decided in Meeting 3. However, I had seen that Twitter wants an application in order to be used. I have researched and understood that this application can take a few weeks to result. Then, I started to search for alternatives. Similarly, Instagram, Pinterest, Facebook, SnapChat and many more known social media apps require an application for the process. And since we have a limited time, we decided to use different external APIs and everybody found one for their own. I used the GitHub link shared in the general CmpE 352 Channel: Public APIs.
- Duration: 2 hours
- Type of Work: Research
-
Task: I chose an API as an external API from Public APIs and thought about functionalities I can add. I decided to use FavQs.
- Duration: 2 hours
- Type of Work: Research
-
Task: I have created Documentation for the Quotes API and add to wiki. To do that I also made research for other API documentations. The links can be found in Links for Research. Issue 152.
- Duration: 3 hours
- Type of Work: Wiki & Research
-
Task: I made a research on APIs and RESTful APIS. I tried to understand how to use them, their definitions, what is expected from us.
- Duration: 2 hours
- Type of Work: Research
-
Task: I made a research on Researched Django and DjangoREST. I read the documentation and tutorial on them. This took a lot of my time since I didn't have any practice on them before. Issue 121.
- Duration: 4 hours
- Type of Work: Research
-
Task: I made a research on how to build a Django app and tried to build my app. I got a lot of errors and I had to make research on a lot of topics. I use debug, research methods to finish building the app.
- Duration: 4 hours
- Type of Work: Code & Research
-
Task: I completed the implementation of Quotes API. Issue 119.
- Duration: 4 hours
- Type of Work: Code
-
Task: I learned Docker and tried to dockerize the app. I was successful. I asked some of my questions in the meeting and we finished Dockerizing. I had to deal with a lot of problems with the SQL and learned a lot of new ways to fix some bugs. Issue 149.
- Duration: 4 hours
- Type of Work: Code & Research
-
Task: I researched AWS and tried to deploy the app. I didn't understand some parts of it so we did the deploying in the meeting and I asked some of my questions to Ahmet Melih Aydogdu. Issue 154.
- Duration: 3 hours
- Type of Work: Code & Research
-
Task: I wrote unit tests and researched how to write the unit tests before I started. Issue 119.
- Duration: 2 hours
- Type of Work: Code & Research
-
Task: I improved the code and tests of my API. I added more exceptions and messages for the exceptions. Related Pull Request: Pull Request 164. Issue 166.
- Duration: 2 hours
- Type of Work: Code
-
Task: After deploying the app, some bug occur conserning the Quotes API to return an empty string as result when no quotes is found. But this didn't look good at the web. So, I have changed to code to return a random quote when no quote with the given filter is found. I opened the Pull Request #182. Issue 183.
- Duration: 2 hours
- Type of Work: Code & Research
-
Task: I have organized the wiki page and sidebar. I have added emojis and changed the order of the pages in the sidebar.
- Duration: 3o minutes
- Type of Work: Wiki
-
Task: I have converted the .md file of the milestone 2 report to pdf and sent it to the group for submission.
- Duration: 3o minutes
- Type of Work: Milestone 2
-
Task: I have written the individual Milestone 2 Report. Issue 180.
- Duration: 5.5 hours
- Type of Work: Milestone 2
-
Task: I have written the Executive Summary of Milestone 2 Report. Issue 193.
- Duration: 5 hours
- Type of Work: Milestone 2
-
Task: I have created a table for my main efforts in the first deliverable of Milestone 2 Report. Issue 178.
- Duration: 45 minutes
- Type of Work: Milestone 2
-
Task: I added some stories to the practice app deployed version, and tested it. Issue 181
- Duration: 20 minutes
- Type of Work: Practice App
-
Task: I have written the Conclusion of Milestone 2 Report. Issue 194.
- Duration: 30 minutes
- Type of Work: Milestone 2
#119, #121, #140, #149, #152, #154, #166, #178, #179, #180, #181, #183, #193, #194, #214
#130, #131, #132, #133, #134, #135, #137, #148, #162, #163, #176. More details can be found in my Individual Milestone 2 Report.
- https://www.django-rest-framework.org/
- https://docs.djangoproject.com/en/3.2/releases/3.1/
- https://www.reddit.com/r/djangolearning/comments/bct4pg/how_to_use_the_arrayfield_in_django_to_store_a/
- https://docs.djangoproject.com/en/3.2/topics/db/models/
- https://docs.djangoproject.com/en/3.2/
- https://docs.djangoproject.com/en/3.2/intro/reusable-apps/
- https://docs.djangoproject.com/en/3.2/intro/tutorial01/
- https://docs.djangoproject.com/en/3.2/topics/install/#installing-official-release
- https://steelkiwi.medium.com/flask-vs-django-how-to-understand-whether-you-need-a-hammer-or-a-toolbox-39b8b3a2e4a5
- https://www.guru99.com/flask-vs-django.html#:~:text=KEY%20DIFFERENCES%3A,for%20easy%20and%20simple%20projects.
- https://www.djangoproject.com/
- https://hub.docker.com/
- https://www.digitalocean.com/community/tutorials/how-to-remove-docker-images-containers-and-volumes#:~:text=Remove%20all%20images,docker%20images%20%2Da
- https://docs.docker.com/
- https://docs.docker.com/samples/django/
- https://hub.docker.com/_/mysql
- https://medium.com/@minghz42/docker-setup-for-django-on-mysql-1f063c9d16a0
- https://github.com/docker/compose/issues/4126
- https://medium.com/code-wave/error-starting-userland-proxy-bind-for-0-0-0-0-3306-failed-port-is-already-allocated-docker-f2e430f68346
- https://realpython.com/django-development-with-docker-compose-and-machine/
- https://blog.logrocket.com/containerizing-a-simple-django-application-with-docker-and-docker-compose/
- https://stackoverflow.com/questions/30063907/using-docker-compose-how-to-execute-multiple-commands
- https://stackoverflow.com/questions/58929215/docker-mysql-connectionerror-unknown-mysql-server-host-db
- https://docs.docker.com/compose/startup-order/
- https://www.alibabacloud.com/blog/practical-exercises-for-docker-compose-part-3_594415#:~:text=Demo%20for%20restart%3A%20always&text=container%20continually%20restarting.-,docker%20container%20stop%20your%2Dcontainer%2Did%20does%20not%20stop%20it,zero%20(%20success%20)%20exit%20code.
- https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/single-container-docker-configuration.html
- https://www.digitalocean.com/community/tutorials/how-to-configure-a-continuous-integration-testing-environment-with-docker-and-docker-compose-on-ubuntu-14-04
- https://stackoverflow.com/questions/49597954/testing-django-app-with-docker-compose
- https://levelup.gitconnected.com/build-and-deploy-a-django-application-using-docker-and-compose-9bf0d8dc5ebb
- https://mmorejon.io/en/blog/start-django-project-with-docker/
- https://aws.amazon.com/getting-started/hands-on/deploy-docker-containers/
- https://aws.amazon.com/docker/#:~:text=Docker%20is%20an%20operating%20system%20for%20containers.&text=Docker%20is%20installed%20on%20each,manage%20Docker%20containers%20at%20scale.
- https://medium.com/saarthi-ai/ec2apachedjango-838e3f6014ab
- https://aws.amazon.com/getting-started/hands-on/launch-an-app/
- https://docs.aws.amazon.com/codedeploy/latest/userguide/tutorials-github-deploy-application.html
- https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-python-django.html
- https://aws.amazon.com/getting-started/hands-on/deploy-python-application/
- https://rubygarage.org/blog/most-basic-git-commands-with-examples
- https://git-scm.com/docs/gittutorial/2.8.6
- https://www.cs.iupui.edu/~ajharris/240/gitDemo.html#:~:text=git%20checkout%20%5BcommitID%5D%20%2D%20Allows,back%20to%20the%20previous%20state.
- https://medium.com/@minghz42/docker-setup-for-django-on-mysql-1f063c9d16a0
- https://www.shubhamdipt.com/blog/django-transfer-data-from-sqlite-to-another-database/
- https://www.geeksforgeeks.org/difference-between-sqlite-and-postgresql/