{"id":7109,"date":"2026-08-10T09:40:36","date_gmt":"2026-08-10T09:40:36","guid":{"rendered":"https:\/\/nokobox.com\/index.php\/item\/rockthejvm-typelevel-rite-of-passage-2023-12\/"},"modified":"2026-08-10T09:40:36","modified_gmt":"2026-08-10T09:40:36","slug":"rockthejvm-typelevel-rite-of-passage-2023-12","status":"publish","type":"digital_item","link":"https:\/\/nokobox.com\/index.php\/item\/rockthejvm-typelevel-rite-of-passage-2023-12\/","title":{"rendered":"RocktheJVM \u2013 Typelevel Rite of Passage 2023-12"},"content":{"rendered":"<div class=\"w-post-elm post_content\">\n<h2>Descriptions<\/h2>\n<p>Typelevel Rite of Passage, Just as Scala has transformed the way we build applications with functional programming, the Typelevel stack is changing how we build strong, testable and provably correct APIs. With a focus on functional Scala and a real world application, this course is a start-to-finish way to learn Full Stack Scala 3 with Cats, Cats Effect and friends. Join me as I show you how to build a full stack jobs platform with the latest evolution of Scala and functional libraries. Together we will build the Rock the JVM Jobs Board, a full stack online jobs platform with credit card integration. Users can create and manage their account, post and view jobs, and apply for them. We will build the application from scratch, using a decoupled layered architecture on the backend, and an Elm-like architecture on the frontend with ScalaJS. The app includes many server-side bits including authentication, permissions, sending email, uploading images, and charging credit cards. We have almost complete test coverage in the backend, and we develop some core modules with test-driven development (TDD).<\/p>\n<h3>What you\u2019ll learn<\/h3>\n<ul>\n<li>REST APIs<\/li>\n<li>Authentication<\/li>\n<li>Authorization with JWTs<\/li>\n<li>Role-Based Access Control<\/li>\n<li>Sending Email<\/li>\n<li>Validating\/Invalidating User Sessions<\/li>\n<li>User Input Sanitizing &amp; validation<\/li>\n<li>Charging Credit Cards<\/li>\n<li>Hosting and Transforming Images<\/li>\n<li>Incremental Loading and Pagination<\/li>\n<li>Complex Backend Filters<\/li>\n<li>Loading and Error states<\/li>\n<li>Elm Frontend Architecture<\/li>\n<li>Routing<\/li>\n<\/ul>\n<h3>Who this course is for<\/h3>\n<ul>\n<li>anyone looking for a complete end-to-end Scala project<\/li>\n<li>backend developers looking to go full-stack on Scala<\/li>\n<li>Scala developers looking to advance their skills and career<\/li>\n<li>anyone who wants to get better at Scala, full-stack architecture or functional programming<\/li>\n<\/ul>\n<h3>Specificatoin of Typelevel Rite of Passage<\/h3>\n<ul>\n<li>Publisher : <a href=\"https:\/\/href.li\/?https:\/\/rockthejvm.com\/p\/typelevel-rite-of-passage\" target=\"_blank\" rel=\"noopener\">RocktheJVM<\/a><\/li>\n<li>Teacher : <a href=\"https:\/\/downloadlynet.ir\/tag\/daniel-ciocirlan\">Daniel Cioc\u00eerlan<\/a><\/li>\n<li>Language : English<\/li>\n<li>Level : All Levels<\/li>\n<li>Number of Course : 71<\/li>\n<li>Duration : 30 hours and minutes<\/li>\n<\/ul>\n<h3>Content of Typelevel Rite of Passage<\/h3>\n<p>1. Intro &amp; Setup<br \/>2. Foundations Cats \u2013 Rock the JVM<br \/>3. Foundations Cats Effect \u2013 Rock the JVM<br \/>4. Foundations Doobie \u2013 Rock the JVM<br \/>5. Foundations Http4s \u2013 Rock the JVM<br \/>6. Backend Scaffolding<br \/>7. Jobs Endpoints<br \/>8. Jobs Endpoints Implementation \u2013 Rock the JVM<br \/>9. Logging &amp; Debugging Infra<br \/>10. Jobs Core Module, aka _Algebra_<br \/>11. Running Jobs Algebra<br \/>12. A Full Jobs CRUD App<br \/>13. Adding Database Configuration<br \/>14. Testing Jobs HTTP API<br \/>15. Testing Jobs<br \/>16. HTTP Payload Validation<br \/>17. Filtering and Pagination<br \/>18. Finishing Tests<br \/>19. Users with TDD<br \/>20. Designing the Auth API<br \/>21. Auth TDD-Style<br \/>22. Auth Implementation<br \/>23. Auth HTTP API<br \/>24. Auth HTTP, TDD-Style<br \/>25. Auth HTTP Implementation A Note<br \/>26. Auth HTTP Validation<br \/>27. Role-Based Access Control (RBAC)<br \/>28. Integrating the Auth Stack<br \/>29. Taking the Backend for a Spin<br \/>30. Protecting Jobs HTTP Endpoints<br \/>31. A Quick Refactor<br \/>32. Password Recovery Tokens<br \/>33. Password Recovery Sending Emails<br \/>34. Password Recovery Finishing Up<br \/>35. Completing the Server<br \/>36. Inception Adding ScalaJS SBT PluginsCommon and Frontend ModulesPackage File for Frontend<br \/>37. Foundations Tyrian<br \/>38. Single-Page Application (SPA) Routing<br \/>39. Adding a Header with Links<br \/>40. Adding Pages<br \/>41. Signing Up<br \/>42. Signing Up Interacting with the Backend<br \/>43. Logging In<br \/>44. User Sessions<br \/>45. Session Cookies<br \/>46. Logging Out<br \/>47. Invalidating User Sessions<br \/>48. The _Forgot Password_ Flow<br \/>49. Resetting Password<br \/>50. Profile Page<br \/>51. Posting Jobs<br \/>52. Uploading Files<br \/>53. Showing the Job List<br \/>54. Implementing Backend Filters<br \/>55. Adding a Filter Panel<br \/>56. The Filter Panel UI<br \/>57. Displaying Individual Jobs and Rendering Markdown<br \/>58. Header<br \/>59. Job Filter Panel<br \/>60. Job List Page<br \/>61. Job Page<br \/>62. Auth Pages<br \/>63. Post Job Page<br \/>64. Stripe Integration Overview<br \/>65. Stripe Endpoints<br \/>66. Stripe Webhooks<br \/>67. Full-Stack Integration<br \/>68. Preparing the App for the World Finishing Touches<br \/>69DEPL~1<br \/>70. Deployment, Part 2 Frontend<br \/>71. JWTs &amp; Suboptimal Database Queries<\/p>\n<h3>Pictures<\/h3>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-945042\" src=\"https:\/\/downloadly.ir\/wp-content\/uploads\/2024\/11\/Typelevel-Rite-of-Passage.d.jpeg\" alt=\"Typelevel Rite of Passage\" width=\"895\" height=\"215\"><\/p>\n<h3>Sample Clip<\/h3>\n<div style=\"width: 640px;\" class=\"wp-video\"><span class=\"mejs-offscreen\">Video Player<\/span><\/p>\n<div id=\"mep_0\" class=\"mejs-container mejs-container-keyboard-inactive wp-video-shortcode mejs-video\" tabindex=\"0\" role=\"application\" aria-label=\"Video Player\" style=\"width: 640px; height: 360px; min-width: 217px;\">\n<div class=\"mejs-inner\">\n<div class=\"mejs-mediaelement\"><mediaelementwrapper id=\"video-146519-1\"><video class=\"wp-video-shortcode\" id=\"video-146519-1_html5\" width=\"640\" height=\"360\" preload=\"metadata\" src=\"https:\/\/dl.downloadly.ir\/Files\/Elearning\/Sample\/Typelevel_Rite_of_Passage_Downloadly.ir.mp4?_=1\" style=\"width: 640px; height: 360px;\"><source type=\"video\/mp4\" src=\"https:\/\/dl.downloadly.ir\/Files\/Elearning\/Sample\/Typelevel_Rite_of_Passage_Downloadly.ir.mp4?_=1\"><a href=\"https:\/\/dl.downloadly.ir\/Files\/Elearning\/Sample\/Typelevel_Rite_of_Passage_Downloadly.ir.mp4?nocache=1786108923548\">https:\/\/dl.downloadly.ir\/Files\/Elearning\/Sample\/Typelevel_Rite_of_Passage_Downloadly.ir.mp4<\/a><\/video><\/mediaelementwrapper><\/div>\n<div class=\"mejs-layers\">\n<div class=\"mejs-poster mejs-layer\" style=\"display: none; width: 100%; height: 100%;\"><\/div>\n<div class=\"mejs-overlay mejs-layer\" style=\"display: none; width: 100%; height: 100%;\">\n<div class=\"mejs-overlay-loading\"><span class=\"mejs-overlay-loading-bg-img\"><\/span><\/div>\n<\/div>\n<div class=\"mejs-overlay mejs-layer\" style=\"display: none; width: 100%; height: 100%;\">\n<div class=\"mejs-overlay-error\"><\/div>\n<\/div>\n<div class=\"mejs-overlay mejs-layer mejs-overlay-play\" style=\"width: 100%; height: 100%;\">\n<div class=\"mejs-overlay-button\" role=\"button\" tabindex=\"0\" aria-label=\"Play\" aria-pressed=\"false\"><\/div>\n<\/div>\n<\/div>\n<div class=\"mejs-controls\">\n<div class=\"mejs-button mejs-playpause-button mejs-play\"><button type=\"button\" aria-controls=\"mep_0\" title=\"Play\" aria-label=\"Play\" tabindex=\"0\"><\/button><\/div>\n<div class=\"mejs-time mejs-currenttime-container\" role=\"timer\" aria-live=\"off\"><span class=\"mejs-currenttime\">00:00<\/span><\/div>\n<div class=\"mejs-time-rail\"><span class=\"mejs-time-total mejs-time-slider\" role=\"slider\" tabindex=\"0\" aria-label=\"Time Slider\" aria-valuemin=\"0\" aria-valuemax=\"0\" aria-valuenow=\"0\" aria-valuetext=\"00:00\"><span class=\"mejs-time-buffering\" style=\"display: none;\"><\/span><span class=\"mejs-time-loaded\"><\/span><span class=\"mejs-time-current\"><\/span><span class=\"mejs-time-hovered no-hover\"><\/span><span class=\"mejs-time-handle\"><span class=\"mejs-time-handle-content\"><\/span><\/span><span class=\"mejs-time-float\"><span class=\"mejs-time-float-current\">00:00<\/span><span class=\"mejs-time-float-corner\"><\/span><\/span><\/span><\/div>\n<div class=\"mejs-time mejs-duration-container\"><span class=\"mejs-duration\">00:00<\/span><\/div>\n<div class=\"mejs-button mejs-volume-button mejs-mute\"><button type=\"button\" aria-controls=\"mep_0\" title=\"Mute\" aria-label=\"Mute\" tabindex=\"0\"><\/button><a href=\"javascript:void(0);\" class=\"mejs-volume-slider\" aria-label=\"Volume Slider\" aria-valuemin=\"0\" aria-valuemax=\"100\" role=\"slider\" aria-orientation=\"vertical\"><span class=\"mejs-offscreen\">Use Up\/Down Arrow keys to increase or decrease volume.<\/span><\/p>\n<div class=\"mejs-volume-total\">\n<div class=\"mejs-volume-current\" style=\"bottom: 0px; height: 100%;\"><\/div>\n<div class=\"mejs-volume-handle\" style=\"bottom: 100%; margin-bottom: -3px;\"><\/div>\n<\/div>\n<p><\/a><\/div>\n<div class=\"mejs-button mejs-fullscreen-button\"><button type=\"button\" aria-controls=\"mep_0\" title=\"Fullscreen\" aria-label=\"Fullscreen\" tabindex=\"0\"><\/button><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<h3>Installation Guide<\/h3>\n<p>Extract the files and watch with your favorite player<\/p>\n<p>Subtitle : Not Available<\/p>\n<p>Quality: 1080p<\/p>\n<h3>Download Links<\/h3>\n<p><a href=\"https:\/\/dl2.downloadly.ir\/Files\/Elearning\/RocktheJVM_Typelevel_Rite_of_Passage_2023-12_Downloadly.ir.part1.rar?nocache=1786108922\">Download Part 1 \u2013 1 GB<\/a><\/p>\n<p><a href=\"https:\/\/dl2.downloadly.ir\/Files\/Elearning\/RocktheJVM_Typelevel_Rite_of_Passage_2023-12_Downloadly.ir.part2.rar?nocache=1786108922\">Download Part 2 \u2013 1 GB<\/a><\/p>\n<p><a href=\"https:\/\/dl2.downloadly.ir\/Files\/Elearning\/RocktheJVM_Typelevel_Rite_of_Passage_2023-12_Downloadly.ir.part3.rar?nocache=1786108922\">Download Part 3 \u2013 1 GB<\/a><\/p>\n<p><a href=\"https:\/\/dl2.downloadly.ir\/Files\/Elearning\/RocktheJVM_Typelevel_Rite_of_Passage_2023-12_Downloadly.ir.part4.rar?nocache=1786108922\">Download Part 4 \u2013 1 GB<\/a><\/p>\n<p><a href=\"https:\/\/dl2.downloadly.ir\/Files\/Elearning\/RocktheJVM_Typelevel_Rite_of_Passage_2023-12_Downloadly.ir.part5.rar?nocache=1786108922\">Download Part 5 \u2013 921 MB<\/a><\/p>\n<h5>Password file(s): <a>www.downloadly.ir<\/a><\/h5>\n<h3>File size<\/h3>\n<p>4.89 GB<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Descriptions Typelevel Rite of Passage, Just as Scala has transformed the way we build applications with functional programming, the Typelevel stack is changing<\/p>\n","protected":false},"author":1,"template":"","dgi_category":[10458],"dgi_tag":[57059,65703,65704,65705,65706,65707,65708,65709,65710],"class_list":["post-7109","digital_item","type-digital_item","status-publish","has-post-thumbnail","hentry","dgi_category-video-tutorials","dgi_tag-daniel-ciocirlan","dgi_tag-download-typelevel-rite-of-passage","dgi_tag-free-download-typelevel-rite-of-passage","dgi_tag-free-typelevel-rite-of-passage","dgi_tag-rockthejvm-typelevel-rite-of-passage","dgi_tag-typelevel-rite-of-passage","dgi_tag-typelevel-rite-of-passage-download","dgi_tag-typelevel-rite-of-passage-free","dgi_tag-typelevel-rite-of-passage-free-download"],"_links":{"self":[{"href":"https:\/\/nokobox.com\/index.php\/wp-json\/wp\/v2\/digital_item\/7109","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nokobox.com\/index.php\/wp-json\/wp\/v2\/digital_item"}],"about":[{"href":"https:\/\/nokobox.com\/index.php\/wp-json\/wp\/v2\/types\/digital_item"}],"author":[{"embeddable":true,"href":"https:\/\/nokobox.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"version-history":[{"count":0,"href":"https:\/\/nokobox.com\/index.php\/wp-json\/wp\/v2\/digital_item\/7109\/revisions"}],"wp:attachment":[{"href":"https:\/\/nokobox.com\/index.php\/wp-json\/wp\/v2\/media?parent=7109"}],"wp:term":[{"taxonomy":"dgi_category","embeddable":true,"href":"https:\/\/nokobox.com\/index.php\/wp-json\/wp\/v2\/dgi_category?post=7109"},{"taxonomy":"dgi_tag","embeddable":true,"href":"https:\/\/nokobox.com\/index.php\/wp-json\/wp\/v2\/dgi_tag?post=7109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}