You're now at the end of the course, but hopefully just at the beginning of your Elixir career! To wrap things up, we'll go through some links that you can visit to keep developing your skills.
Enhancing Messengyr
If you want to enhance the current Messengyr project, here are some ideas on features that you could implement in order to practice:
-
Group chats: We already have a database structure that could handle this. What's left is the UI and business logic for adding more users to a room.
-
Sending media: In a modern chat application, you should obviously be able to send more than just text. You could for example let the users share gifs via Giphy's API, or implement file uploading.
-
A better way of creating rooms: The prompt window that we're currently using is pretty ugly, and not very user-friendly. The best thing here would be to have a special input component that suggests a list of users, so that you don't accidentally try to add a username that doesn't exist. You can always check out Facebook's Messenger for inspiration.
Facebook Messenger's UI for creating new rooms
New challenges and resources
Advanced Elixir & Erlang
Since Elixir leverages the Erlang VM, there's still tons to learn about the ecosystem in general that will help you (also, many of Elixir's top libraries are actually written in Erlang)! To get started with Erlang, you can check out the Learn You Some Erlang website, and if you want to go back to polish your Elixir skills, I recommend the book "Elixir in Action"!
Frontend frameworks:
In this course, we used React and Redux to build our UI, but another frontend framework that I highly recommend is Ember.
Ember is what Dockyard (the company that employs Chris McCord, the creator or Phoenix) uses, and I often use it myself for more "ambitious" applications. Check out my "Discover Ember" course on Ludu to learn more!
Ember's mascot: the Tomster!
Keeping up with the community
Both Elixir and Phoenix have very ambitious goals, and the ecosystem around them changes as developers discover new best practices. To stay on track, here are some helpful communities where you can follow the news and get help:
-
r/elixir (Reddit)
-
Elixir on Slack (which also includes a
#phoenix
channel) -
awesome-elixir (a curated list of Elixir and Erlang libraries that you can use for your next project)
While you're at it, feel free to follow me on GitHub and Twitter, where I tweet about development in general! Good luck on your next adventure!