Inspiration

We are all big readers, but between classwork, extra-curriculars and our own personal projects it can be difficult to make time for it. We wanted to make literature and education more approachable, so that it would seem less intimidating and be easier to fit into a busy lifestyle.

We believe that education and learning should be accessible to everyone, even those who might not have access to large libraries, educational resources, and peers and instructors. In the information age, learning should happen through cell-phones, not despite them.

What it does

"A reader lives a thousand lives," once said a famous author. We have the ability to experience the lives and thoughts of thousands if not millions of people, and all their ideas, theories, and so much knowledge. We believe that deep reflection on a daily basis and engaging in Socratic dialogue with other readers is the best way to really digest a book. Our app breaks books down into more manageable chunks. Each daily selection also includes a special place for the reflections of fellow readers, so that you can share your thoughts and get valuable deeper insight from different perspectives.

How we built it

The front end is done with Swift, XCode, and iOS. We want to publish it to a phone, and connect it to an API running on Google Cloud. This would connect to a mySQL database, also on Google Cloud. We wrote out explicit API docs to communicate between our front-end and back-end teams, and one of our group members worked on getting the infrastructure set up to document, test, and deploy our code. This was Github Actions running with Google Cloud Platform (the authentication/authorization was sufficiently complex that it ended up being a time sink for our design, but the testing and dockerization proved useful). Dockerization helped us prevent divergence of packages, environments, and network connections. It also would have allowed us to deploy and scale on the cloud using Google Cloud Run, and it let us run testing repeatably.

Challenges we ran into

Integration proved to be a huge problem. The current UI has hardcoded values for demonstration purposes, despite having a working backend and setup infrastructure. Coordinating infrastructure with fellow developers in our team was also a challenge, as we didn't have the object structures diagrammed out very well. We improved on this during the last half, however.

Accomplishments that we're proud of

We were really happy with the potential expansibility of our idea. From a technical perspective, we also had no Swift or Google Cloud experience coming in, so we are very proud of the progress we made, teaching ourselves both of these technologies, which turned out to be an integral part of our paroject. We're also happy with how easy it is to convert a book into bite-sized pieces. Previously, we bit off more than we could chew with large machine-learning projects or projects that required significant work from the designers to generate interesting data. But here, we can pretty easily scale importing books, and users could even do it themselves!

What we learned

We learned a lot about coordinating with other developers when working on different levels of the application. We also learned a lot about cloud technology. We learned Swift from no prior experience, and taught ourselves enough to create a user-friendly UI. We learned how to create Docker instances and we learned about IAM administration and permissions inside the GCP. Connecting GH (GitHub) actions to Google Cloud required a lot of trial and error, and it taught us about the authorization systems inside Google Cloud for Docker Run and other container tools.

What's next for Meditations

We hope to drastically expand the library of books on offer, as well as implement in-line annotations. We also want to implement book imports and guided courses or book-collections ordered chronologically (in order to engrain history into the education process). We also want to explicitly implement book clubs and ways to keep in touch with your friends and what reading they're engaged in.

Built With

Share this project:

Updates