The main goal of the project is to equip students with Python programming skills good enough to be able to create a learning app (Flashcards), using all what learned from the Udemy bootcamp videos and in the class, together with the exchange of knowledge among the students. The app is to help users learn German words and daily sentences by providing answers in German for English questions.
We decided to start with:
- Discuss about what functions we want the Flashcards app to have.
- Come up with a flow chart for the program.
- Come up with some sets of basic codes.
- Add in graphic user interface (GUI).
- Improve the codes for a better user experience.
First, Kristian provided the group with helpful information and methods to communicate and work on coding process together such as Mattermost group chat, Zoom calls, Colab and finally with Github to store the project documents. Kristian helped to guide the group to the correct direction among the chaos. Before the requirement for GUI was set, Fortune contributed two sets of initial codes as in notebook_1.ipynb and notebook_2.ipnb; Tim came up with codes as in notebook_3.ipynb. After the requirement for GUI, Thao came up with the first codes for GUI as in Flashcards_with_GUI_1.ipynb. After discussing, the group decided to go with the direction of implement GUI for Tim's codes. Kristian presented the progress of our group on presentation day. Tim contributed the GUI version of the code as in Flashcards_with_GUI_final.ipynb. Finally, Angelica and Thao did the story-telling part of the project through README.
We used Colab for the main code development and sharing, it works for the basic codes. However, when we needed to add in the GUI, Colab was not able to run the codes as we needed to organize the codes or modify it. We needed to use VScode or created virtual environment with all the installed dependencies to run the GUI code. We tried to go along the project with the voluntary base approach where members are free to contribute whatever they can without assigning any task to each member. And of course, this created the problem of free-riding where some members don't contribute. This can be improved upon by actively assigning tasks for each member.