Scala Projects

Scala Projects

Learn and practice Scala with real-life projects. Ideal for developers who have just learned the fundamentals of Scala, and want to get practical experience by building real applications.

Enroll Now

Goal

Build real things with Scala.

So you’ve just learned Scala. You know the basics, you can write some code, but you don’t feel comfortable enough to build real applications.

Maybe you’d like to start building your own projects, but you don’t know where to start. Looking for some ideas of practical and fun projects to build, so that you can say you’re a real Scala developer.

This course is for you. In here, you will build real applications with Scala, from scratch. Maybe one of them will be the starting point for your next startup.

How This Course Works


Each project takes about 2 hours to complete - enough for an evening hack session - but with plenty of room for expanding into something more serious if you like the project or want to use it yourself.

At the beginning of every project, you’ll get a tutorial on the libraries we’ll use, then we’ll go lasers blazing into the project itself.

Let me tell you about the projects:

Project 1: PhotoScala

This is a command-line image editor, which can transform pictures in various ways. You can crop, resize, apply filters and effects, and combine multiple images together.

We architect this app so that you can add as many other transformations, effects and filters as you want. The code is modular and easy to extend.

You’ll learn

  • how to work with pictures
  • image effects
  • blend modes (the kind of stuff you see in Photoshop)
  • kernel filters like blur, sharpen, emboss and edge detection
  • not least, how to build a command line

Project 2: ScrapeYard

This is a web scraper, which can scrape any website and extract useful information from it. You can use it to scrape news articles, product information, or any other kind of data.

We’ll write different scrapers for different sites (including Rock the JVM!), and by the end of this project we’ll be able to extract news headlines from a popular site and send them to you over email, instead of endless doom-scrolling.

You’ll learn

  • parsing real websites
  • recursive scraping (e.g. on forums)
  • parallel crawling
  • sending emails

Project 3: Statick

In this project, we’ll build a static site generator.

By the end of this chapter, you’ll have a personal Markdown-based programming blog deployed on GitHub Pages, with syntax highlighting and all.

It takes far less code than you think, it looks great and you can expand it into a full-blown framework if you want.

You’ll learn

  • static site rendering
  • deploying a website to a popular hosting platform
  • adding configuration
  • syntax highlighting
  • templating

Project 4: Chattie

This is a full-stack Scala application in the style of WhatsApp. Multiple users can connect to a chat room, and send messages and replies, with persistent storage. When a user logs in, they see the full chat history.

You’ll learn

  • using databases
  • exposing web servers
  • frontend with ScalaJS
  • sharing domain model (so underrated!)
  • real-time updates with websockets

Project 5: ScalaDrive

This is a real-time file synchronizer. Works real fast: I try cloning my big Typelevel Rite of Passage repo on camera and it’s instantly mirrored on the other side. The screenshot doesn’t do it justic: I’m cloning the repo in indir and it’s instantly mirrored in outdir.

You’ll learn

  • parallelizing workloads with actors
  • file management
  • spawning processes
  • inter-process communication
  • communicating remotely across the network

Project 6: RAGnarok

This is an AI chatbot trained on my own blog on camera. It’s able to give you contextualized answers with code examples and references where it found the information.

You’ll learn how to build your own AI agent trained on your own data.

Enough said!

Skills You'll Learn

After this course, you’ll be able to:

  • use Scala as a fast, productive language for the task at hand
  • pick the right tools and libraries for a Scala project
  • use either plain Scala or straightforward libraries (instead of effect systems or magical frameworks) for powerful applications
  • deploy your Scala applications to the target of your choice
  • hopefully, use the projects you’ve built or turn them into real products!

Meet Rock the JVM

Daniel Ciocîrlan

I'm a software engineer and the founder of Rock the JVM.

I'm a software engineer and the founder of Rock the JVM. I started the Rock the JVM project out of love for Scala and the technologies it powers - they are all amazing tools and I want to share as much of my experience with them as I can.

As of February 2024, I've taught Java, Scala, Kotlin and related tech (e.g. Cats, ZIO, Spark) to 100000+ students at various levels and I've held live training sessions for some of the best companies in the industry, including Adobe and Apple. I've also taught university students who now work at Google and Facebook (among others), I've held Hour of Code for 7-year-olds and I've taught more than 35000 kids to code.

I have a Master's Degree in Computer Science and I wrote my Bachelor and Master thesis on Quantum Computation. Before starting to learn programming, I won medals at international Physics competitions.

In Collaboration with Haoyi Li

Haoyi Li is a software engineer and the author of com-lihaoyi, an ecosystem of popular open-source Scala libraries, including os-lib, uPickle, Cask and Scalatags, which we used in this course. He is also the author of the book Hands-On Scala Programming, which he gracefully allowed me to use as an inspiration for 4 out of 6 projects of this course. I took his code examples in the book to a more "product-like" state, with refactorings and a more functional-style Scala, so that the total overlap with his book is about 30%. You'll get a lot of value from this course even if (especially if) you have his book close by.

Haoyi is also the creator of the Mill build tool, which he recently released as 1.0.

What's Included

Prologue

Enroll now!

Scala Projects - Lifetime License

$95

Just the course with a one-time payment

  • 15 hours of 4K content
  • 3300 lines of code written
  • All PDF slides
  • Access to the private Rock the JVM community
  • Free updates
  • Lifetime access
Get Now
MonthlyYearly

All-Access Membership

$35/monthly

All of the Rock the JVM courses

  • 348 hours of 4K content
  • 66560 lines of code written
  • All Scala courses
  • All Kotlin courses
  • All Typelevel courses
  • All ZIO courses
  • All Apache Spark courses
  • All Apache Flink courses
  • All Akka/Pekko courses
Join Now
The Scala Bundle

The Scala Bundle

Become a Scala and functional programming expert from scratch with our all-inclusive course bundle: master everything you need in one complete package, at a discount

100% Money Back Guarantee

If you're not happy with this course, I want you to have your money back. If that happens, contact me with a copy of your welcome email and I will refund you the course.

Less than 0.05% of students refunded a course on the entire site, and every payment was returned in less than 72 hours.

money back guarantee

FAQ