{"id":21427103,"url":"https://github.com/caisilus/ruby_lab","last_synced_at":"2025-03-16T21:20:42.768Z","repository":{"id":118157484,"uuid":"484474131","full_name":"caisilus/ruby_lab","owner":"caisilus","description":"Website for learning Ruby with automatic code testing","archived":false,"fork":false,"pushed_at":"2023-06-11T12:52:11.000Z","size":1109,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-23T07:45:06.649Z","etag":null,"topics":["ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/caisilus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2022-04-22T14:59:42.000Z","updated_at":"2023-04-16T17:33:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"b408d299-2719-4036-91c5-8b2c1501b437","html_url":"https://github.com/caisilus/ruby_lab","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caisilus%2Fruby_lab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caisilus%2Fruby_lab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caisilus%2Fruby_lab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caisilus%2Fruby_lab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/caisilus","download_url":"https://codeload.github.com/caisilus/ruby_lab/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243933427,"owners_count":20370989,"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":["ruby"],"created_at":"2024-11-22T21:43:57.159Z","updated_at":"2025-03-16T21:20:42.751Z","avatar_url":"https://github.com/caisilus.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RubyLab\nRubyLab is a web application for teaching Ruby and Ruby on Rails. It automatically tests student's code and display percentage of tests passed. \n\n# Features\nThis project is in development. Not all of the features below are implemented.\n\n## Github integration\nYou can log-in via github and add a link to a repo: RubyLab will trace your commits and test your committed code automatically.\n\n![alt text](https://github.com/caisilus/ruby_lab_2/blob/main/app/assets/images/github_interaction_scheme.png?raw=true)\n## Real-time updates\nThere is no need to refresh the page after you push your code. Your score will be updated in real time.\n\n![real time updates](https://github.com/caisilus/ruby_lab_2/blob/main/app/assets/images/real_time_updates.gif?raw=true)\n\n## Gamification\nScoring system is aimed to create motivation and determine your strengths and weaknesses.\n\n# Development\nTo be able to contribute to the app, follow this steps:\n\n1) Clone this repo\n2) Install required **ruby version** (3.2.1)\n3) Install gem bundler\n4) Install **redis**: https://redis.io/docs/getting-started/installation/\n5) Install **ngrok**: https://ngrok.com/download\n6) Install node js and yarn\n7) Run\n\n\n        bundle install\n8) Run\n\n    \n        yarn install\n9) Install postgresql\n10) Create .env file and enter your db cridentials like that:\n\n\n        DATABASE_USERNAME=\u003cusername\u003e\n        DATABASE_PASSWORD=\u003cpassword\u003e\n    \n11) Create and migrate database. Run\n\n\n        bundle exec rake db:create\n        bundle exec rake db:migrate\n    \n12) To have example data, run\n\n\n        bundle exec rake db:seed\n\n## Before starting server\n\n1) Run foreman start to have life-reload for js and css\n\n\n        foreman start -f Procefile.dev\n2) Start redis service.\n\n\n        sudo service redis-server start\nOn Windows it will work via WSL.\n\n3) Start ngrok server\n\n\n        ngrok http 3000  \n4) Set **DEV_URL** env variable to the url **ngrok** provides.\n5) Create folder for testing user's code and set **SANDBOX_FOLDER** env variable to its path\n6) Create tests folder in SANDBOX_FOLDER and add test files\n7) Create github app and set **GITHUB_CLIENT_ID** and **GITHUB_CLIENT_SECRET** env variables\n8) Edit **Homepage URL** and **Authorization callback URL** at GitHub App's page to match your ngrok url\n9) Run server\n\n\n        rails s\n\n### Latest feature:\n\nInstead of making steps 3-5, you can now create ngrok.yml configuration file in `lib/tasks` like this:\n    \n    version: \"2\"\n    console_ui: false\n    authtoken: \u003cyour auth token\u003e\n\nWhen you have this file, you can run **both ngrok and server** using rake task:\n    \n    rails ngrok:start\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaisilus%2Fruby_lab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcaisilus%2Fruby_lab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaisilus%2Fruby_lab/lists"}