Skip to content

Instantly share code, notes, and snippets.

@acbart
Last active April 29, 2023 14:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save acbart/382bc8c59453fdf43c975256df3e8f41 to your computer and use it in GitHub Desktop.
Save acbart/382bc8c59453fdf43c975256df3e8f41 to your computer and use it in GitHub Desktop.
Dr. Bart's Hackathon Technology Suggestions

Hello hackers! Here are some suggestions for hacking during the Hackathon of cool things to try playing with.

For Python

Want to make something with Python? Here are some cool things you might try using:

Python in the Browser: Pyodide

Want to have Python running directly in the browser? You can use a new system called Pyodide! I found this guide that seemed like it would get you something basic going: https://testdriven.io/blog/build-spa-with-python-part-1/

You should be able to swap out their code for your own code and make a website that actually runs Python directly.

A Web-based GUI for Python: NiceGUI

I haven't gotten to try this, but it seems really nice and clean to let you make interactive web applications with Python: https://nicegui.io/

Simple Python Server with Bottle

Want to make a website that can run more complicated Python commands in the background, while still serving HTML pages? You probably don't have time to learn Flask or Django, but Bottle is pretty easy to get started with: https://bottlepy.org/docs/dev/

Pygame or Designer for Games

If you've taken CISC108 recently, you might remember we introduced the Designer library to make games in Python.

If you want to use something a little more complicated but also more powerful, you could also try out Pygame. Lot's more tutorials and example code out there, but you do learn how the system works!

For JavaScript/TypeScript

Bookmarklets

If you want to have some JavaScript that runs directly on a webpage, you can make a Bookmarklet. This is a bookmark that, when you click it on a webpage, runs some JavaScript! This is a nifty way to add more functionality to Canvas by just directly using the API. No user authentication or API keys required!

$.get("https://udel.instructure.com/api/v1/courses/", (data) => {
  console.log(data);
})

See the Canvas area below for more ideas

Cool APIs

Often a fun place to get started with your idea is to look at cool web APIs and libraries that you can use. You might build your application around these.

Canvas API

Want to work with your data? Or make a tool to help teachers work with their data?

You'll need to get yourself an API key first (don't worry, they're free and easy to get). Keep it secret and safe, that gives full access to your Canvas account!

Then you can use the many different endpoints to access data for assignments, pages, submissions, grades, discussions, so many different things!

If you don't want to use the endpoints directly, then there are packages that people have created to let you interface a bit more easily (e.g., for Canvas for Python).

ChatGPT/GPT4

This is all the rage now, since Large Language Models can solve a surprising number of problems. You know how to use it in your browser; did you know that you can use it directly in your code now too?

There is a waitlist to get into the API, so if you want to use this, then you should fill out the form ASAP and cross your fingers. Then you can use the documentation here to see how to use it.

OCR (reading text)

It's easy(-ish) to turn images and PDFs into text. There's a program called Tesseract that you can install, and then there are various binding libraries for other language (e.g., Python's is pytesseract). You need to install it, so be prepared to google. Orrrr you could try...

Google Cloud Services

You can do some cool things with Google Cloud Services, once you get it setup. Some examples include transcribing PDFs, image and annotation/detection, text to speech, speech to text, and a bunch of other things.

Other APIs

Here's a meta list of Cool APIs that you might try using. You can get data for anything nowadays: https://apilist.fun/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment