Inspiration

At the Fall of 2020, twins Aaron and Garett Geesink created a discord server to help their fellow students navigate college life and curriculum, and it eventually grew to become THE hub for aspiring computer scientists, engineers, and the occasional outsider interested in the various programs at UCR. The community grew to reach over 1,500 member, including students, TAs, and professors alike.

However, the bigger it grew, the harder it became to manage. This bot was created at Citrus Hack 2022 with the help of Richard Tobing and Raymond Zeng as part of an effort to improve the process of maintaining a heavily populated online space.

The Bot, however, was not only meant to make life easier for the administrators behind the scenes, but also for the users who regularly use our channels. Apart from (digitally) housing a flourishing community, the central purpose of the UCR Compsci Server was to serve as a hub for students to access UCR's many dedicated curriculum-based servers. Naurally, we wanted this tool to facilitate the process by which students accesses resources. To do this, we have created easy-to use commands which lets users instantly assume roles, join channels, and get links to servers that are dedicated to their classes. To complement the process, (and to keep faithful to the theme of "growing potential"), we have even added an experimental feature we dub "The Citrus Tree".

Inspired by video games, the Citrus Tree is a RPG-style "Skill Tree" that students can use as a convenient way to declutter the entangled mess of prerequisites that one must occasionally wrestle when having to schedule and register for classes. It works by representing their CS classes as nodes of a tree-shaped graph, where the connection between the nodes are based on prerequisites or "dependencies" between different classes.

What it does

Norm Navel bot is our custom solution to role assignment and server management on the UCR CompSci Discord server, The Citrus Tree is a representation of CS courses layed out in a easy-to-navigate map. It can also serve as a visual "progress marker" so that students know how far their are in their "climb" towards their degree.

How we built it

We used the Discord.py package and the Discord bot API, as well ass CSS and HTML for the Vercel webpage and json for database.

Challenges we ran into

We started using one python-based API for discord bots, before switching to another python-based API very late into the Hackathon. The breadth of the project was a little bit too ambitious for what we could handle in 24 hours. Because of the time crunch, our GitHub is not as organized as we would have liked it to be; the main branch was left dubiously stable, and the Citrus Tree was left unmerged, hanging on its own branch like a low hanging orange (all puns intended)

Accomplishments that we're proud of

We made a professional-looking website for the Discord server, as well as some functional /commands to help us manage the Discord server. The Citrus Tree, although one of our later ideas, is our most complete, and tangibly usable feature thus far, upon receiving input as a list of classes, a tree is generated highlighting the path of dependencies among those classes.

What we learned

We learned the basics of how to make a discord bot, use Discord APIs, and how to host a webpage using Vercel and the anatomy of a json file. Most importantly, we learned time management, and what it means to really 'crunch'.

What's next for Norm Naval Discord Bot

We would like to extend the role functionality to include a built-in Discord GUI for users to select roles on the UCR CompSci Discord server. The implementation of the set of commands could also use some work. The Citrus Tree needs a way of 'saving' the progress of individual users, and as an optimistic stretch goal, it might benefit by having a GPA-based leveling system

Built With

Share this project:

Updates