Ideas wanted for small projects/activities

Hello all, I am six weeks into a program at the Recurse center with six weeks to go after next week. I’m looking for ideas of fun and instructive projects or activities for various levels at the Friday Elm Hangouts. Elm Warrior might be one good choice. But I need your suggestions/1

4 Likes

I’d love for somebody to improve this tool, if they have any interest. It’s an approach along the lines of “hot-reloading Javascript”, but for Elm. There’s a GIF on the readme, if you wanna see what it’s about.

I think it’s a good project because:

  1. The code is really short and sweet
  2. The feature is really powerful IMO
  3. There’s a couple of open issues that would probably be easy to get started on. I’ll add those issues on the repo, should anybody be interested in improving the tool.

:sunny:

I would love to see some work around data analysis, machine learning, and natural language processing by implementing some of the known algorithms!
NLP Algorithms
Data Analysis
ML

Does your city or state have a good data portal? I’ve been using my own city’s data portal to make data visualizations out of COVID-19 data. It’s a good small project that can be built incrementally.

My site is up on GitLab pages.

1 Like

I think that games of various sorts would be good also. Any suggestions?

Thanks @eleanor! Very nice project. I’m putting this on our list of references for our study group.

1 Like

Making https://joshwcomeau.com/operator-lookup/ for Elm could possibly be a nice little project.

2 Likes

Two unsolicited, possible directions for incremental change:

  • the usage of shadow on the selected button makes it look like tabs, to me. And it looks like the currently selected one has the dropshadow on it. A solution I could think of would be to not draw the bottom shadow, so it looks connected to the main page. But I have no design skills. I just know how to obnoxiously explain to designers what’s wrong with theirs. :upside_down_face: If UI design is something at all you are interested in, “affordance” is a nice search term.
  • I had a little trouble distinguishing between the red hues in the graph on hospitalisation.

My two cents. Cool project, and nicely done! I’ll definitely look at the code when I get to my computer. I’m just learning Elm, and I’m sure I’ll pick up a thing or two. Thanks for sharing.

For deliberate practice using Elm I’ve done the following:

Widgets

Pick a widget from a widget library and try to rebuild it in Elm. I’ve done this with my elm-rater library. But, there are many other widgets to be explored.

I think abadi approaches the design and implementation of custom components (widgets) really well. Read the code for datetimepicker and elm-input-extra for example, and then have them try building some of their own widgets.

One-page apps

When I was practicing Elm a while ago I found the Front End Libraries Projects by freeCodeCamp to be a good resource for active learning.

You can use my solutions in Elm as a reference, if you like.

My favorite project to work on out of all of them was the calculator.

Another idea I had for practicing but haven’t tried as yet was building out math learning widgets like you might have found at cut-the-knot in its prime. They were built with Java applets but I think Elm is the perfect tool for the job at building these tiny interactive learning experiences.

Multi-page apps

For React, Angular, Vue and other front-end frameworks they have more extensive tutorials and books that teach you to build modern single-page web apps. I’d say pick one of the tutorials or books and have them go through it in Elm.

I did it recently for Ember’s tutorial, Super Rentals, and it was a really great learning experience. I will be doing more of this in the future myself. There were some interesting details I had to figure out that I only came across by attempting to build it out myself.

I hope these suggestions will be helpful to you.

2 Likes

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.