3 Intermediate-Advanced Side Projects Ideas You Can Build Right Now
Coming up with a good side project is hard. You have to balance scope and difficulty to ensure that it is challenging enough that you will learn but not so challenging that you want to quit. I wrote about this balance and other tips in a previous article.
For this article, I’ll throw out some ideas that will hopefully inspire you to try something new. Feel free to expand upon, change, and adapt these ideas but remember to keep it manageable.
1. A Twitch Stream Status Twitter Bot
This can be a lot of things, but the main idea here is to post status updates to a Twitter account whenever a specific Twitch stream starts, ends, etc.
What you will learn:
- How to integrate different API’s and services with each other.
- How to read API documentation and use SDK’s in your projects.
Requirements:
- Use the Twitch API to listen to stream events.
- Use the Twitter API to post to an account.
- Whenever your app gets a new Twitch event (any event of your choosing), post a custom message to Twitter.
A simple implementation of this project can be a bot that listens for whenever your favorite streamer goes online and then posting to Twitter, “Streamer XYZ is online, join the stream at [stream URL]!”
2. A Website Down Detector
Own a few websites but you never know when any of them are down? This project will be useful to you.
What you will learn:
- How to set up and deploy an AWS Lambda function and schedule it to run at regular intervals with EventBridge.
- How to send an automated email with the email provider of your choice (AWS SES, Mailchimp, etc.)
Requirements:
- Create an AWS Lambda Function and EventBridge Rule to invoke it.
Each time the Lambda is invoked, it should do the following:
- Send an HTTP request to your website and check the status code of the response.
- If the status code indicates an error (5xx, 4xx), the Lambda should send an email to your inbox indicating that your website is down.
Building this simple website down detector is the basis for web monitoring and alerting systems. Try scaling this project to monitor multiple websites and alert based on different rules on what is considered “down”.
3. An In-Browser Photo Editor
No, definitely not a full-featured Adobe competitor (though they do exist). We’d only want to implement basic photo manipulations such as adjusting brightness, contrast, saturation and performing transformations and crops.
What you will learn:
- How to manipulate image data to achieve specific effects.
- How to build a web app UI with several different functions including uploading and downloading files.
Requirements:
- A user is able to upload an image file to the web app and view it.
- The user can select a function that edits the image in a specific way such as rotate 90 degrees, raise saturation, etc.
- The edits are applied to the image and viewable in the browser display.
- The user can download the edited image.
This project is great if you want to get a better understanding of how digital images work and how to build a web UI.
I hope you found this article helpful in giving you some ideas on what your next side project can be!
If you wish to see more developer related content and tutorials, check out my Medium profile and giving it a follow is much appreciated.