Projects

All of the concepts you have learned throughout SPIS will culminate in a final project. In this project, you will apply your Computer Science and Engineering skills to a real-world application in one of three project areas. Be sure to follow the Presentation Guidelines below.

  • Videos should be around 3 minutes in length (no longer than 5 minutes)

  • Videos should start with an introduction of the team members, followed by a demo of the project (ideally with narration)

  • Your video should follow the naming convention PARTNER1FIRSTNAME_PARTNER2FIRSTNAME_TITLE.*** (where *** is the file extension)

  • Try to output your video in either 1080p or 720p resolution, and ideally in the mp4 or mkv file format using the H.264 or x264 video codec

    • If you're not sure what the above information means, don't worry about it: send us what you have, and we'll figure it out

  • Please upload your completed video to the following Google Drive folder by Thursday 9/2 at 12:00 PM:

Machine Learning

Lab 7 gave you a taste of machine learning, applied specifically to the domain of text classification and text generation. At the bottom of that lab there are some ideas for extensions you can implement for your project. But if you’re looking for even more ideas, here are some general ideas for directions you might go. See the linked website below for specific guidance on many of these:

  • Choose a different data set (text or otherwise) and perform some classification (using Naive Bayes or another classifier). We’ve linked some possible data sets here, or many more are linked to from the link below.

  • Learn how to use the scikit.learn library to apply another classifier to the data from Lab 7, or another data set.

  • Implement a clustering or classification algorithm from scratch.

For structured guidance, we highly recommend you follow the ideas and instructions on this page, which provides 8 hands-on machine learning projects for beginners: https://elitedatascience.com/machine-learning-projects-for-beginners

The following video may also be informational: https://www.youtube.com/watch?v=nKW8Ndu7Mjw

Video Games

Pygame has a lot of different features you can use to build your games.

If you need some inspiration, you can check out these videos on game ideas: video1, video2

A good way to find more information about particular functionalities, is just putting in the keywords in your search engine and let it lead you through the various resources people have created. One of those is this playlist of pygame videos, but there are many more available.

Another good way to learn is by looking at code others have written. Here are just some examples (youtube videos with links to the code): Snake, Space Invaders, Space Shooter, Golf Game.

Web Applications

Getting Started

First and foremost, checkout lab 8 -- it'll give you an overview of how to build a webapp. Once you've had a taste of building a web app, here are some potential project ideas:

  • Create a bot for the web - A way to interact with websites and automate tasks.

  • Webapp - Any website idea that you have (almost endless opportunities) that uses python, html, and css (Minimal Javascript).

  • Web Scraping - Can extract information from webpages using something like BeautifulSoup library in python.

  • Any other idea that you can come up with that interacts with the web and uses python! The ideas are endless. Feel free to look around on Google for more ideas.


Then, you can checkout these subjects below:

Repl.it required lots of changes in these pages, and you might run into Repl.it issues that weren't covered. Let a mentor know if you think an error is caused by Repl.it, so we can investigate and include solutions to it in the pages!

General

APIs/OAuth

Databases


Extra Topics:

Learning More about HTML

Some useful example webapps:


Advanced Topics:

There may or may not be time for the advanced topics below during SPIS. If there isn't, these are some topics for further study if you want to take your web app further after SPIS is concluded.

Even More Flask:

  • The main Flask website

  • Book: Flask Web Development By: Miguel Grinberg Publisher: O’Reilly Media, Inc. Pub. Date: May 8, 2014 Print ISBN-13: 978-1-4493-7262-0


Web Scraping (getting data from other sites)

  • Book: Web Scraping with Python By: Ryan Mitchell Publisher: O’Reilly Media, Inc. Pub. Date: July 14, 2015 Print ISBN-13: 978-1-4919-1029-0

    • Available to read online, on UCSD campus, for free, here


Summaries

Summary of steps to making a web app from scratch (details are in lab 8)

  • Make a github repo

  • Make subdirectories for templates and static

  • Create layout.html, home.html, along with other necessary pages you have (i.e. about.html, contact.html, etc)

  • Set up static/style.css

  • Create the hello.py file that runs the project

  • Run and test locally with python hello.py

Example


Summary of steps to run on Heroku (details are in lab 8)

  • First, you should have a heroku account (create one at heroku.com)

  • Add and commit a Procfile and a requirements.txt file to github repo

  • Procfile consists of one line that tells heroku what to do with the repo: web: gunicorn hello:app --log-file=-

  • requirements.txt lists needed Python modules and is created with one command: pip freeze > requirements.txt

  • Inside your project (make sure it's connected to your github repo), run: heroku login

  • Then run: heroku create

  • Then do: git push heroku master

  • The log messages will contain the URL of your app, which is now deployed.

  • You can manipulate the app at the dashboard of Heroku

If you run into errors, checkout the details in lab 8 (deploying from Repl.it might require a few extra steps on your side). Otherwise, ask a mentor for help.