About

BookWorms is your go-to resource for finding the right books for kids at every stage of their reading journey. It can be challenging to find comprehensive or centralized information about books that are level-appropriate. Whether you're a parent guiding a young reader or a teacher managing a classroom full of young learners, BookWorms makes it easy to explore leveled, age-appropriate books all in one place. As children grow, their reading needs evolve---not just in difficulty, but in interest. BookWorms helps you to find books that match your child's skill level and curiosities, keeping kids engaged and excited to read. Beyond book discovery, BookWorms includes tools for tracking reading progress, setting personalized goals, and assigning reading materials through teacher accounts. Everything is designed with one mission in mind: to support and inspire young readers as they grow.

BookWorms is powered by three main components, as can be seen in the diagram below. These components are a database, a backend web server, and a frontend mobile app. The backend server is powered by C# ASP.NET, and uses EF Core to communicate with the database. This database stores prepopulated book data retrieved from the Open Library API, as well as user data such as bookshelves, reviews, recommendations, and more. The mobile app is written in Dart using the Flutter framework for cross platform compatibility, and runs on the web as well as Android and iOS. It communicates with the backend server over HTTP requests to retrieve all appropriate user and book data.

Two additional, smaller components exist (note the "Local section" in the below diagram) which served to prepopulate our database with safe, appropriate data.

Additional information, including lower-level instructions on running applications locally, is available in the BookWorms GitLab group repository Wikis:

Download

For using the application without downloading, a web version is available here. For the best experience, use a browser on a mobile device.

If you'd like to download and run the application yourself, you can find an Android APK here.

Aiden Van Dyke

Hi, I'm Aiden Van Dyke. I'm graduating May of 2025 with a Bachelors in Computer Science. In my free time, I enjoy taking road trips to new places, camping and backpacking, and just about anything to do with space. Besides exploring nature, I also like making mods for games, and have made a few code mods for Unity games, such as Kerbal Space Program and Cities Skylines.

When it comes to programming, I primarily enjoy working on the backend, using a language like C#. For instance, I was one of the two programmers working on my capstone project's web API backend, written with ASP.NET and EF Core. However, my abilities are not just limited to backend. I also enjoy the satisfaction that comes with designing a UI frontend, and helped out with the capstone project's cross platform mobile app UI as well, which was written in Flutter/Dart.

As an optimizer, I'm constantly wondering what and how things can be improved, and trying to accomplish what I can to further that goal. For instance, right now, I'm working on an app to eliminate redundant time and effort spent on my grocery trips. And I really enjoy the sense of satisfaction I get when I finish wrangling a complex and messy code-base into something simple and refined. I'm looking forward to joining the industry and applying the skills I've spent the last few years honing.

Braden Fiedel

Hey! My name is Braden Fiedel. I am a senior Computer Science major and mathematics minor at the University of Utah. My academic interests primarily lie in data science and machine learning, and I'm always eager to learn new things that push the boundaries of my knowledge. Last semester, I completed an independent study where I explored interpretability techniques for large language models, aiming to make them more transparent and understandable. This semester, I presented at the Mechanistic Interpretability Seminar, discussing the latest advancements in the field.

In addition to my academic work, I am currently working on two personal projects: a Quoridor playing AI in C++ and a neural crossword solver in PyTorch. This coming fall, I will likely be beginning a PhD program in artificial intelligence, furthering my academic and research interests. In my free time, I like to read, watch movies, listen to music, and complete puzzles.

Caden Erickson

Hi! I'm Caden Erickson. I am a senior majoring in Computer Science with Honors here at the University of Utah. I've loved the wide variety of topics and projects that in college has exposed me to, including the great experience I've gained this semester in the Web Development and Mobile App Development courses.

Beyond expanding my own learning, I've enjoyed doing my part to help others succeed as well, and was able to be a teaching assistant for Professor Flatt's Programming Language Concepts course this past fall. I enjoy all aspects in which computing enables me to create something original, especially when it comes in the form of something useful to someone else, and my experience as a TA gave me an opportunity to use what I'd learned in my own studies to benefit others.

Outside of school, I'm an avid musician, having been both a pianist and percussionist since I was in elementary school. I've been fortunate enough to perform with some incredible ensembles both in Utah and in venues across the country, and I highly value the joy and camaraderie that can be found in music. Coming up on graduation, I'm thrilled to be able to step out into the world, discover unique and interesting problems being solved, and use the skills I've gained in school to build the tools for the world of the future.

Josie Fiedel

Hi, I'm Josie Fiedel! I am a senior majoring in Computer Science and Applied Mathematics at the University of Utah. This semester, I am taking the Computer Science Capstone course, Introduction to Machine Learning, Graph Theory, Numerical Analysis, and Pilates. I am also involved as a teaching assistant for Database Systems and am currently serving as the Vice President of the Women in Computing club.

My interests lie in algorithms, creative problem solving, and exploring the depths of machine learning and applied math. Outside of that, you will find me hiking, reading fiction, doing Pilates, and diving into new interests like running, nutrition, cloud technologies, space sciences, and finance. I am excited to begin my journey as a software engineer, and I am eager to apply the knowledge I have gained over the past few years to construct the foundation of tomorrow's innovation. My greatest aspiration is to pursue a career as a software engineer at an aerospace company, surrounded by an environment driven by space exploration and discovery.

Tutorial

5 min read

Welcome to BookWorms!

This tutorial covers the basic functionality of the BookWorms mobile app. For more information, see the user tutorial provided within the app itself, accessible from the Profile screen.

To begin, navigate to the download instructions located in the “Download” tab on the sidebar.

The Bookworms app provides two different account types, parent and teacher. We provide an overview of each account type below.

Dashboard

Upon registration and login, you are greeted with the user dashboard. The dashboard provides a simplified overview of your child's goal progress, recommended bookshelves, and any classrooms your child is enrolled in. Pictured here is Glenn's view of his child Russel's dashboard.

Bookshelves

The bookshelves screen is where you can save books to read for the future. You can create custom bookshelves or utilize the default Completed and In Progress bookshelves. If your child is enrolled in a classroom, class bookshelves are displayed here. Pictured here are Russel's custom and classroom bookshelves.

Search

Look up your favorite titles or authors to retrieve a wide selection of books from our database. These results may be expanded to see a more detailed description of a book, including the book description and an option to view reviews left by other parents and teachers. If you and your child loved a book, you can leave a review here.

Not sure what to read? Use our Advanced Search feature. Apply filters to search for books of any genre, user rating, reading level, and more.

Progress

Set reading goals and track your child's goal progress in the progress screen. On this screen, you can view your child's progress over time through the use of interactive graphs. From book completion goals to more quantitative tracking, our app supports whatever reading goals you wish to set for your child. Russel's current reading progress is pictured here.

Profile

The profile screen allows you to edit your account details and the child profiles you manage. A more detailed tutorial can also be accessed from this screen.

Dashboard

Upon registration and login, you are greeted with the user dashboard. From the dashboard, you can view an overview of your students' progress on classroom goals as well as a list of books recommended based on your reading activity.

Search

Look up your favorite titles or authors to retrieve a wide selection of books from our database. These results may be expanded to see a more detailed description of a book, including the book description and an option to view reviews left by other parents and teachers. If you and your child loved a book, you can leave a review here.

Not sure what to read? Use our Advanced Search feature. Apply filters to search for books of any genre, user rating, reading level, and more.

Classroom

Classrooms are the place to go for determining your classes enrollment details, setting classroom goals, and tracking student progress. From book completion goals, to more quantitative tracking, our app supports whatever reading goal you wish to set for your class.

You are able to view any active or upcoming classroom goals, as well as more granular detail about student completion and progress.

Profile

The profile screen allows you to edit your account details. A more detailed tutorial can also be accessed from this screen.