Inspiration

This project was conceptualized out of common day to day hurdles ive always had with the digital systems for my University (The national univeristy of Costa Rica), this app compiles ideas and concepts that students in my university have used to organize their resources

What it does

I see my app as a one way stop to everything a univeristy student essentially need in my university, this app bundles in extensive calendar functionality with dynamic reminders based on the type of task, the official Bus routes and time remaining until each one, and it was later expanded with help from members of the university to include API access to make it more integrated with the official academic platform and best of all, it includes widgets which is something that was neither possible on the existing websites or even the official app, syncing the student calendar data and allowing students to easily have offline access to their files that would otherwise rely on our aulavirtual.una.cr website which is mostly made for computers. (while AI integration for chat and documents is still a work in progress, with the goal of receiving student documents and building events for the calendar or just saving it for contextual answers later on)

How we built it

This app was built from the ground up in codex, the entire foundation of it came from discussing some of my ideas with ChatGPT to determine the viability of this project, after some scope was determined this chat was moved onto codex which started the plan, this app utilizes jetpack compose and the android native material 3 expressive libraries

Challenges we ran into

These challenges could be divided into two sections

  1. API integration: apart from the fact that i had never worked on an Android app before i also have never made anything that did APIs integration, and while codex did great work implementing it, there were multiple cases of hitting rate limits that broke this integration
  2. Local AI work: by far the most problematic, ideally from its inception i wanted the AI functionality to run locally, as it would not be feasible to either pay for the AI hosting perpetually for a free student app, or expect people to do themselves in order to use it, bringing too much friction, this topic can divide itself in other mini sections:
  • Context windows: The only integrated LLM for android Gemma v4, has a very limited context window, i believe it is around 4K input tokens, this is not nearly enough for an AI meant to manage documents for all of its answers, however this was addressed for the most part, for example in the pdf document extractor each uploaded PDF automatically would get split into sections that fit around 3K tokens, so each message would fit under the token window, allowing the OCR to be done, after this feature i started to work on the Chatbot functionality, now this is where this issue showed up again, as i wanted it to have all of the information it may possibly need to be useful, this meant compiling a big mark down file that had to be split into a tree style format, instead of the LLM looking at one huge file it would now look for filenames and categories, different type of resources were divided into folders and explicit file names that detailed the material to be found, so the AI would just look for the vague category around the question and get a concrete markdown file on the matter

  • Speed and intelligence: local models don't have much of these, this meant that initial implementations where prone to being extremely slow and likely to return formatting errors, for example initially the PDF importing in my phone for a pdf that was around 10 pages long would take around 5-7 minutes, while it being local was great and it mostly succeded this was way too long and people would just assume the app is broken and leave, so i spent a session with codex discussing prompt and structural changes to address this to the best of my capabilities, after using Sol to face this issue everything got optimized to be slightly over a minute, and also importantly it helped me in expaning the section to have a loading bar that advanced as parts were analized

  • Compatibility: The one issue i really wouldnt be able to fix, as it stands currently most Android smartphones have no local AI capabilities at all, this meant introducing cloud LLMs as an alternative, i know most people will not go through the effort of getting an API key set up but i included support for google studio API as it is one of the few that offers a decent amount of free usage, this is the most realistic option for a student but i plan to expand the provider support as i keep working on the AI features

Accomplishments that we're proud of

Honestly the design of it is just like i wanted it, feels really minimalistic and right at home with Android, i also believe that the app is the most user friendly option for any student that needs even just one of the features that i provide, its all irght to the point and easy to understand

What we learned

Honestly this was an amazing opportunity to learn things that i have never even tried before, while this app was not my first ever project on Codex it is the one i have spent the most amount of time and effort on, before this Hackaton I knew mostly nothing about android development, working on design, implementing AI into an app workflow or even how to get the most out of Codex, as this app was the reason i started to look more into sub-agents, how to better instruct GPT 5.6 Sol to get the most out of it, and specially the usage, as this entire application was built solely on the Chatgpt plus plan for 20$

What's next for Mi-CampusCR

mostly i want to finalize the AI functionality, as the deadline got closer i had to focus more on other aspects of UI and UX, leaving this feature as more of a limited but functional prototype, i also wanted to add a notes feature, as most students have used a wide array of other apps to take quick notes that they need on their classes, having a wall of quick notes to easily access and basically have all of their study resources on the Mi-Campus app, after all of this i want to properly do publishing to have it available publicly and include a built in updating feature on it, if it is not eventually listed on the play store as publishing is expensive

Built With

Share this project:

Updates