Our inspiration for this project came from the many, many difficulties we as a group faced with studying properly in our academic programs. It is easy to memorize one use case of skill, but to learn and properly study it, you must do a lot. The first thing you have to do is listen/read. Getting your introduction to the content is a very important part of learning. The next step is to understand/comprehend that content. Many people stop after just the first step, if you do this you have only learned about the provided examples. This can become an obstacle in your way to achieving a truly learned skill. The next step after that is application. You must be able to properly and efficiently apply the content you have just comprehended. If you don't apply it, you won't be able to use it/recall it properly when prompted later in life. The final step is examination and review. You must be able to hold your learning up against a difficult task and be able to review what you did wrong to improve those points. Once you have completed all of these points, you have truly learned this skill and it will be easy for you to recall the content taught to you during the course of your learning time.
As students, we have had to apply these skills to help learn the most we can at our schools. This, however, is a difficult thing to do. If you wanted to learn something by yourself, there are a lot more hurdles in your way, including actually learning that skill! Some methods to learn have proven successful, and we have tried to automate and bring together methods like flashcards and self-quizzing to help you become a better and smarter learner.
What it does
This is a web application, this means it's accessible through the internet. Once you visit our website, you will have to create an account so we can start to get your environment set up. The next step is to show you a view of all of your notes and items. After you have been greeted with your work, you can select a flashcard set or a page of your notes and start reading them over. You can also create your own notes by using our online document editor. After reading through the content, our application will use an NLP (Natural Language Processing) algorithm to help automatically create a group of flashcards that you can review and learn with. After you have reviewed and read the material, our application will load a quiz or even create one using our NLP to help you apply your knowledge. Finally, you can see the results to help improve yourself and your understanding of the concepts. Our application will help you run through your entire learning schedule based on just the one document you created at the start!
How We built it
We built this using a lot of popular tools, and some powerful ones as well. To run our front-end of the Web App we used HTML, CSS, and JS. To manage servers and calculations, we had Python and Flask running the backend. We had SQLAlchemy and a PostgreSQL server holding our information. To manage the NLP, we created our own algorithm to sort out the information. To plan out our design we used Figma. To host our project we used PythonAnywhere, and Github to hold some files. We also used Summernote, and bleach to implement a text editor feature and neatly collect the inputted data from the form onto our database. It was quite an experience.
Challenges We ran into
The biggest challenge would have to be communication between Flask and the website. We had forms to handle user input, but for interactive items like buttons, we had to go through a lot of Ajax and JQuery just to add some basic functionality. Luckily, after looking for a lot of alternatives, we were able to cut down on the use of Ajax as most of our team wasn't experienced in it.
Another huge issue was the lack of communication between front and back ends. It was difficult to get stuff done on time as certain things had to be designed a certain way in the front-end to allow proper access to the back-end. This would create huge delays as we couldn't coordinate. This resulted in most of our app to be created in the last 4 hours of the event!
Accomplishments that I'm proud of
We are extremely proud that we were able to make a crude/yet working NLP algorithm on our own. For some more detail, this would check the text for patterns like buzz-words and punctuation to find questions and it would match words and such to find answers.
We are also proud we were able to make it look so nice, credits to Jatin Mehta for the killer design with Figma, and special thanks to Justin Vuong, Osama Al-Chalabi for performed excellently at mixing together the different elements of the app and giving it a great back-end functionality.
We thought that this was one of the best team collaborations at any hackathon we have been to.
What we learned
We learned a lot about how to format and read an inputted text, it was a big thing for us to go through the different statements and find answers to questions just based upon some simple questions. We learned how to use different technologies ranging from front-end, back-end and even design and layout of our application. We believe that we learned a much important skill of listening, asking questions, and being able to cooperate under stressful environment
What's next for ezLearn
We plan to give it a nicer look, actually make us of some of the design features we gave to it, and make it a polished, well-refined look and feel for students around the world. In the future, we aim towards implementing more features that make learning simplified for students with learn disabilities. The new features include and not limited to Text to speech, auto-generated quizzes, allowing the user to simply import their research documents or other form of writing, in order to receive a custom quiz set aimed towards improving the user's understanding. We aim to Deploy our project to other platforms such as Mobile (Android & IOS) and possibly a Desktop version. It is important for us to not just deliver a ‘polished’ looking application, but to ensure that it performs well and opened for changes in the future. We aim at possibly reducing the amount of ‘CDN’ links used such that, the web application will take less time to process the visual styles.