{"id":21696386,"url":"https://github.com/ryanj93/jboard","last_synced_at":"2026-04-06T21:32:56.248Z","repository":{"id":143951473,"uuid":"315106416","full_name":"RyanJ93/jboard","owner":"RyanJ93","description":"jBoard is a web application for online lessons management developed as an academic project using Vue, Java and Java Servlets.","archived":false,"fork":false,"pushed_at":"2022-03-26T00:08:44.000Z","size":175,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-06T21:08:47.204Z","etag":null,"topics":["java","javascript","servlets","vue"],"latest_commit_sha":null,"homepage":"http://jboard.enricosola.dev","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RyanJ93.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":"2020-11-22T18:35:47.000Z","updated_at":"2022-03-26T00:09:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"67e4ce8a-f705-45cb-b115-a524ec06d0d0","html_url":"https://github.com/RyanJ93/jboard","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/RyanJ93/jboard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyanJ93%2Fjboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyanJ93%2Fjboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyanJ93%2Fjboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyanJ93%2Fjboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RyanJ93","download_url":"https://codeload.github.com/RyanJ93/jboard/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyanJ93%2Fjboard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31491097,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T17:22:55.647Z","status":"ssl_error","status_checked_at":"2026-04-06T17:22:54.741Z","response_time":112,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["java","javascript","servlets","vue"],"created_at":"2024-11-25T19:19:41.930Z","updated_at":"2026-04-06T21:32:56.239Z","avatar_url":"https://github.com/RyanJ93.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jBoard\n\njBoard is a web application for online lessons management developed as an academic project using Vue, Java and Java Servlets. It is designed to support admin users, who can add new teachers, courses and then lessons, and regular users, who can book lessons.\n\u003cbr /\u003e\nA native Java-based Android application is available too, more information [here](https://github.com/RyanJ93/jboard-android).\n\u003cbr /\u003e\nYou can try out an online instance of this application [here](http://jboard.enricosola.dev).\n\n## Requirements\n\n- Java 25 or greater\n- Gradle 9\n- A Java Servlet Server, Tomcat version 11 is recommended.\n- MySQL 9\n- Node.js 25 or greater\n\n## Configuration\n\nBefore starting up the application you need to add the configuration file, you can find a sample configuration file in the `config` directory, you can duplicate that file, edit it with your database connection information and then rename it as `config.json`. Also, you can set up Sentry error tracking by defining your own Sentry DSN URL in the configuration file. \u003cbr /\u003e\nAdditionally, you need to import the database structure, you can find the whole structure contained in the `resources/database.sql` file.\n\n## Building the front-end\n\nThe front-edn side is managed using NPM so first of all you need to install required dependencies running the `npm i` command in the project root directory. Once dependencies have successfully been installed you have to compile the whole font-end part using the following command:\n\n```bash\nnpm run webpack-dev\n```\n\nOr if you need a minified version of the front-end code you can run this command:\n\n```bash\nnpm run webpack-prod\n```\n\n## Building the application\n\nOnce the front-end side is compiled and ready you need to build the .war archive before deploying it onto a Java Servlet Server, such as Tomcat. The whole web application's dependencies and building strategy is managed by Gradle so make sure you have Gradle 7 and Java 15 or greater installed on your machine and then all you need is to run the following command:\n\n```bash\ngradle war\n```\n\nThis command will produce a war archive located at `build/libs/jboard.war`.\n\n### jBoard as a Docker image\n\nYou can deploy this project as a Docker container: you can simply run the pre-built image that you can find [here](https://hub.docker.com/repository/docker/enricosola/jboard) or if you prefer you can build your own image by running the `docker build` command inside the project root directory.\n\n## User management commands\n\nProject provides some CLI commands to manage users, all those commands must be executed from the project root path:\n\n- Add a new user: `npm run useradd`\n- Delete a user: `npm run userdel`\n- List all the registered users: `npm run userlist`\n- Change a user password: `npm run change-user-password`\n\nIf your're running the application as a docker container you must use the following alternatives:\n\n- useradd: `docker exec -it [CONTAINER NAME] jboard-useradd`\n- userdel: `docker exec -it [CONTAINER NAME] jboard-userdel`\n- userlist: `docker exec -it [CONTAINER NAME] jboard-userlist`\n- change-user-password: `docker exec -it [CONTAINER NAME] jboard-change-user-password`\n\nApplication server tested on Apple macOS and RedHat Enterprise Linux 8, currently not tested on Microsoft Windows.\n\nDeveloped with ❤️ by [Enrico Sola](https://www.enricosola.dev).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanj93%2Fjboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fryanj93%2Fjboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanj93%2Fjboard/lists"}