Lectern's Development Journey
“If you can’t explain it to a six year old, you don’t understand it yourself.”
Albert Einstein
Inspiration
Our objective with Lectern is to revolutionize studying and education utilizing AI. As academically driven students from UCI and UCSC, we sought effective and efficient study methods throughout our years in school. Trying out different studying methods, we have found that utilizing the Feynman technique and active recall contributed the most to our learning. Thus, we leveraged AI technology to create a speech-driven app that utilizes AI in speech recognition, image recognition, and text generation to streamline an effective and efficient learning process.
What it does
The Lectern app guides users into the Feynman technique and active recall. As users take notes on the app, they are prompted to answer a series of AI-generated questions based on their mastery of the material. Speaking into the app, users utilize active recall to enforce facts, to which they are given feedback and tips on their understanding and gaps in knowledge. Furthermore, additional questions gauging the user's understanding of the material are iteratively repeated until the user masters the material. Lectern offers a streamlined process of learning, recalling, and fixing gaps in knowledge to enforce a time-efficient and effective study session.
How we built it
We build the Lectern app utilizing SwiftUI, Swift, UIKit, Next.JS, Node.JS, OpenAI API, and CoreML. Dividing up the work of front and back-end development among the three developers in our team was a timely and difficult task. The backend, using Next.js and Node.js, went through iterations of development as we ran into issues fine-tuning our model. In the front end, we spent a lot of time developing a beautiful UI with many tools, gestures, and intuitive design, a creative but difficult process. But the most difficult task was integrating the front end and the back end, as we ran into a plethora of bugs to debug. However, overcoming the challenges in every stage of development proved to be a tiring but rewarding experience.
Challenges we ran into
The development process of Lectern was riddled with bugs and complexities that were difficult to overcome. The front end utilized SwiftUI, being a relatively young framework, it lacked documentation and was very frustrating to debug. The backend ran into issues of scalability, token costs, and API architecture issues that were bad, but not as bad as the frontend problems.
What we learned
Through the development of Lectern, we learned that AI has many applications to solve problems in the real world. We never knew how well AI could be integrated into an education app, which brings a new way of studying material with an angle of vocal prompting and response. The App development process has opened our eyes to the applications of leveraging AI technology to revolutionize education. Hopefully, we will grow as students and developers to find more places to revolutionize our passions in technology.