{"id":27135623,"url":"https://github.com/r8vnhill/echo-app-sbt","last_synced_at":"2025-04-10T00:12:46.758Z","repository":{"id":286349465,"uuid":"959497191","full_name":"r8vnhill/echo-app-sbt","owner":"r8vnhill","description":"🧱 Modular Scala 3 app using sbt — showcases how to structure multi-module projects with a reusable library and an executable app, as part of the DIBS course.","archived":false,"fork":false,"pushed_at":"2025-04-05T21:14:13.000Z","size":7,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T22:20:15.360Z","etag":null,"topics":["build-tool","console-app","dibs-course","educational","giter8","hello-world","modular-architecture","multi-module","sbt","scala","scala3","software-library","starter-template"],"latest_commit_sha":null,"homepage":"https://dibs.pages.dev","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/r8vnhill.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-04-02T22:05:31.000Z","updated_at":"2025-04-05T21:18:07.000Z","dependencies_parsed_at":"2025-04-05T22:20:19.935Z","dependency_job_id":null,"html_url":"https://github.com/r8vnhill/echo-app-sbt","commit_stats":null,"previous_names":["r8vnhill/echo-app-sbt"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r8vnhill%2Fecho-app-sbt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r8vnhill%2Fecho-app-sbt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r8vnhill%2Fecho-app-sbt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r8vnhill%2Fecho-app-sbt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/r8vnhill","download_url":"https://codeload.github.com/r8vnhill/echo-app-sbt/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247761028,"owners_count":20991533,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["build-tool","console-app","dibs-course","educational","giter8","hello-world","modular-architecture","multi-module","sbt","scala","scala3","software-library","starter-template"],"created_at":"2025-04-08T01:49:04.318Z","updated_at":"2025-04-08T01:49:04.923Z","avatar_url":"https://github.com/r8vnhill.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# echo-app-sbt\n\nA modular Scala 3 application built with **sbt**, developed as part of the [DIBS](https://dibs.pages.dev/) course (*Diseño e Implementación de Bibliotecas de Software*).\n\nThis project demonstrates the evolution of a basic Scala console application into a **multi-module architecture**, separating a reusable library (`lib`) from the main executable application (`app`). It's ideal for exploring best practices in modularization, dependency management, and scalable project structure with sbt.\n\n\u003e 🗣 Although the course materials are in Spanish, this repository and its code are written in English to make the project more accessible to a wider audience.\n\n## 📚 About the Lessons\n\nThis repository supports two lessons from the DIBS course:\n\n### ✅ [Creating a Basic Project with sbt](https://dibs.pages.dev/docs/build-systems/init/sbt/)\n\n- Learn how to install and use `sbt`\n- Generate a basic Scala 3 project using the official Giter8 template\n- Understand the standard `src/main` and `src/test` directory structure\n- Run a small console app using Scala 3's `@main` annotation\n\n### 🧱 [Structuring Multi-Module Projects with sbt](https://dibs.pages.dev/docs/build-systems/modular-design/sbt/)\n\n- Convert the basic project into a multi-module layout\n- Define `lib` and `app` subprojects in `build.sbt`\n- Share settings across modules with `commonSettings`\n- Call a function defined in the library from the main application\n\n## 🚀 Running the Application\n\nFrom the root of the project, you can run the main module with:\n\n```bash\nsbt \"app/run Alex Dim Nah Dim\"\n```\n\nExpected output:\n\n```plaintext\nAlex\nDim\nNah\nDim\n```\n\n## 📁 Project Structure\n\n```\necho-app-sbt/\n├── build.sbt               # Defines common settings and declares modules\n├── project/\n│   └── build.properties    # sbt version\n├── lib/                    # Reusable library module\n│   └── src/\n│       └── main/\n│           └── scala/\n│               └── cl/ravenhill/echo/echoMessage.scala\n├── app/                    # Application module\n│   └── src/\n│       └── main/\n│           └── scala/\n│               └── cl/ravenhill/echo/app.scala\n└── README.md\n```\n\n## 🛠️ Requirements\n\n- Scala 3.x\n- sbt 1.10+\n- Java 17 or later (tested with Java 23)\n\n## 🎓 Part of the DIBS Course\n\nThis repository is part of the official examples used in the *Diseño e Implementación de Bibliotecas de Software* (DIBS) course.  \nTo explore more lessons and materials, visit [dibs.pages.dev](https://dibs.pages.dev/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fr8vnhill%2Fecho-app-sbt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fr8vnhill%2Fecho-app-sbt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fr8vnhill%2Fecho-app-sbt/lists"}