{"id":16617594,"url":"https://github.com/ddworken/bottlenose","last_synced_at":"2026-04-27T04:31:26.859Z","repository":{"id":80931688,"uuid":"78953393","full_name":"ddworken/bottlenose","owner":"ddworken","description":"CS assignment / grade mangement system","archived":false,"fork":false,"pushed_at":"2017-01-15T02:01:36.000Z","size":12700,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-11T04:27:20.871Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ddworken.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":"2017-01-14T16:58:07.000Z","updated_at":"2020-03-10T03:25:30.000Z","dependencies_parsed_at":"2023-06-28T21:16:16.376Z","dependency_job_id":null,"html_url":"https://github.com/ddworken/bottlenose","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ddworken/bottlenose","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddworken%2Fbottlenose","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddworken%2Fbottlenose/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddworken%2Fbottlenose/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddworken%2Fbottlenose/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ddworken","download_url":"https://codeload.github.com/ddworken/bottlenose/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddworken%2Fbottlenose/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32323211,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-10-12T02:17:16.317Z","updated_at":"2026-04-27T04:31:26.836Z","avatar_url":"https://github.com/ddworken.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bottlenose\n\nBottlenose is a web app for managing assignment submission and grading in computer science courses. It provides a flexible mechanism for automatic grading of programming assignments.\n\n## Documentation\n\nThe documentation for each part of the system is broken up in the same way Rails organizes it's projects. Below are links to each main section.\n\n- [Models](app/models/)\n- [Controllers](app/controllers/)\n- [Views](app/views/)\n- [Jobs](app/jobs/)\n- [Mailers](app/mailers/)\n- [Configuration](config/)\n\n## Linux Setup (Vagrant)\n\nThe goal of this section is to get a working Debian 8 machine up and running.\nWe also want to have this project's source in `$BOTTLENOSE`. I'm working on OS X\nso I'll be using a VM to do this. If you are working directly on the Linux\nmachine then skip directly to [bottlenose setup](#bottlenose-setup).\n\n[VirtualBox](https://www.virtualbox.org) is a virtualization software that can\nrun Debian 8. [Download](https://www.virtualbox.org/wiki/Downloads) and install\nthis tool.\n\n[Vagrant](https://www.vagrantup.com) is another tool designed to avoid manual VM\nmanagement. [Download](https://www.vagrantup.com/downloads.html) and install\nthis tool as well.\n\nOnce you have both VirtualBox and Vagrant run the script below (from this\ndirectory) to start up your Debian 8 VM.\n\n```sh\n# Creates the Vagrantfile in the current directory, this file holds VM\n# configuration information. The debian/jessie64 argument tells vagrant to\n# use Debian 8 64bit.\nvagrant init debian/jessie64\n```\n\nOpen the `Vagrantfile` and add the line\n\n```\nconfig.vm.network \"forwarded_port\", guest: 3000, host: 3000\n```\n\ninside the config block. This allows the host to access the Rails server\non port 3000.\n\n```sh\n# Start the VM with virtualbox.\nvagrant up --provider virtualbox\n```\n\nNow that you have a working VM running Debian 8 we can SSH into it and begin\nsetting it up.\n\n```sh\n# SSH into the VM.\nvagrant ssh\n\n# Move into the bottlenose project directory. Using Vagrant $BOTTLENOSE is\n# /vagrant, this is because Vagrant keeps the directory on the host system\n# with the Vagrantfile in sync with /vagrant on the client system.\ncd /vagrant\n```\n\n## Linux Setup (Manual)\n\nAs root. `$BOTTLENOSE` is `/home/bottlenose/src`.\n\n```sh\napt-get update\napt-get install sudo git\nmkdir /home/bottlenose\nuseradd -d /home/bottlenose -G sudo bottlenose\nchown -R bottlenose:bottlenose /home/bottlenose\nsu - bottlenose\nchsh -s /bin/bash\ngit clone https://github.com/nixpulvis/bottlenose.git src\ncd src\n```\n\n## Bottlenose Setup\n\nThe goal of this section is to have a working web-server running Bottlenose and\nall of it's dependencies. All scripts in this sections start in the\n`$BOTTLENOSE` directory unless explicitly stated otherwise.\n\n### Basics\n\nSome packages are generally good to have, and needed by many future steps in\nthe setup process.\n\n```sh\nsudo apt-get install \\\n    git \\\n    vim \\\n    curl\n```\n\n### Postgres\n\nTODO: I was using 9.5, is this correct?\n\nBottlenose uses Postgres 9.4+ as the database. Install and setup the bottlenose\nrole with the following script.\n\n```sh\n# Install postgresql and the development library.\nsudo apt-get install postgresql\n\n# Switch to the postgres user to create the new bottlenose role.\nsudo su - postgres\n\n# Create the bottlenose role for postgres.\ncreateuser -d bottlenose\n\n# Exit back to the vagrant user.\nexit\n```\n\nThen configure the `pg_hba.conf` file to trust local connections\n\n```sh\nsudo rm /etc/postgresql/9.4/main/pg_hba.conf\nsudo nano /etc/postgresql/9.4/main/pg_hba.conf\n```\n\nPaste in the below contents:\n\n```\nlocal   all             postgres                                trust\nlocal   all             all                                     trust\nhost    all             all             127.0.0.1/32            trust\nhost    all             all             ::1/128                 trust\n```\n\nThen restart postgresql\n\n```sh\nsudo service postgresql restart\n```\n\n### Ruby\n\nInstalling Ruby is easiest with the aid of a tool like\n[rbenv](https://github.com/rbenv/rbenv). Install both rbenv, and ruby-build with\nthe following script.\n\n```sh\n# Download both rbenv, and ruby-build.\ngit clone https://github.com/rbenv/rbenv.git ~/.rbenv\ngit clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build\n\n# Add the `rbenv` executable to your $PATH.\necho 'export PATH=\"$HOME/.rbenv/bin:$PATH\"' \u003e\u003e ~/.bashrc\n# Run rbenv's init when Bash starts.\necho 'eval \"$(rbenv init -)\"' \u003e\u003e ~/.bashrc\n\n# Restart the shell.\nexec bash\n```\n\nNow we can install Ruby using rbenv and ruby-build.\n\n```sh\n# Install the Ruby system dependencies.\nsudo apt-get install \\\n    build-essential \\\n    libssl-dev \\\n    libreadline-dev \\\n    zlib1g-dev \\\n    libpq-dev \\\n    qt4-default\n\n# Install the Ruby determined by the contents of the\n# .ruby-version file.\nrbenv install\n\n# Ensure Ruby was install correctly. Where \u003cversion\u003e is the\n# correct version as described in the .ruby-version file.\nruby --version\n#=\u003e ruby \u003cversion\u003e ...\n```\n\nOnce you have Ruby installed, install the Ruby dependencies.\n\n```sh\n# Install Ruby's package manager \"Bundler\".\ngem install bundler\n\n# If you're using rbenv, you may need to run this command to\n# ensure new executables are loaded into your PATH.\nrbenv rehash\n\n# Install Bottlenose's dependencies.\nbundle install\n```\n\n### Rails\n\nThe last step is to set up the Rails app.\n\n```sh\n# Create the database.\nrake db:create\n# Run database migrations.\nrake db:migrate\n```\n\n## Usage\n\nTo run the server in development mode run the following script. The binding\nis up to your desired configuration, however this will work for most cases.\n\n```sh\n# Run the server, binding to 0.0.0.0 is needed for Vagrant.\nrails s -b 0.0.0.0\n```\n\nTo get access to a Ruby REPL with the application environment loaded, run\n`rails c`. The database REPL can be accessed using `rails db`.\n\nOther tasks are done via rake, run `rake -T` to view all tasks available. The\nfollowing are the most common tasks.\n\n```sh\n# Create the database.\nrake db:create\n\n# Run the database migrations.\nrake db:migrate\n\n# Rollback the last database migration.\nrake db:rollback\n\n# List all routes in the application.\nrake routes\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fddworken%2Fbottlenose","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fddworken%2Fbottlenose","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fddworken%2Fbottlenose/lists"}