{"id":19098532,"url":"https://github.com/ucfopen/obojobo-classic","last_synced_at":"2025-04-30T15:26:20.782Z","repository":{"id":36309617,"uuid":"64511263","full_name":"ucfopen/Obojobo-Classic","owner":"ucfopen","description":"Obojobo Classic - UCF's Learning Object Repository","archived":false,"fork":false,"pushed_at":"2023-07-07T21:31:01.000Z","size":146556,"stargazers_count":5,"open_issues_count":11,"forks_count":7,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-04-19T04:42:17.899Z","etag":null,"topics":["courseware","digital-learning","edtech","edu","hacktoberfest","learning","learning-objects","obojobo","ucf","university-of-central-florida"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"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/ucfopen.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,"zenodo":null}},"created_at":"2016-07-29T21:23:33.000Z","updated_at":"2021-06-03T19:06:30.000Z","dependencies_parsed_at":"2025-04-18T16:55:39.067Z","dependency_job_id":"ce52457d-c15e-40b5-8c48-a48264cbba28","html_url":"https://github.com/ucfopen/Obojobo-Classic","commit_stats":null,"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ucfopen%2FObojobo-Classic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ucfopen%2FObojobo-Classic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ucfopen%2FObojobo-Classic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ucfopen%2FObojobo-Classic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ucfopen","download_url":"https://codeload.github.com/ucfopen/Obojobo-Classic/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251730647,"owners_count":21634426,"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":["courseware","digital-learning","edtech","edu","hacktoberfest","learning","learning-objects","obojobo","ucf","university-of-central-florida"],"created_at":"2024-11-09T03:46:11.003Z","updated_at":"2025-04-30T15:26:20.727Z","avatar_url":"https://github.com/ucfopen.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Obojobo\nObojobo is a Learning Module Management System\n\n# Quick Start with Docker\nFor local development, testing, and as a reference for the architecture setup, we have a Docker environment to get you up and running quickly.\n\nThe docker-compose setup will automatically set up the server containers, seed the database, and get everything up and running.\n\n1. Install [Docker for Mac/Windows/Linux](https://www.docker.com/products/docker)\n2. Run `docker-compose up -d` (-d makes it run in the background eg: daemonized). this will take a while the first time.\n3. After 2 finishes: Run `docker-compose run --rm phpfpm composer install` to install wordpress and all the php vendor libraries.\n4. After 3 finishes:  Run `docker-compose run --rm phpfpm php internal/update_password.php obojobo_admin rocketduck` to set the obojobo_admin user's password.\n5. Log in either at `http://127.0.0.1/repository` or `http://127.0.0.1/wp/wp-admin`\n\n## React Repository AND Docker\n\nDocker isn't needed to work with storybook components, just use `yarn storybook` for that.  To allow react to talk to the server, you'll need to run webpack-dev-server and the docker servers together.\n\nThat means you need to have BOTH the docker servers running (`docker-compose up -d` shown above) AND the webpack dev server (`yarn dev`).  Using this combo requires the obojobo config for APP_URL be set to the url that webpack-dev-server creates, that value is hardcoded (due to php class const) in cfgLocal.docker.php.  The url you should use is whatever webpack-dev-server announces when it starts running, usually `https:/127.0.0.1:8080`\n\n\n# Requirements\n* Unique domain or sub domain (obojobo.yourschool.edu)\n* libjpeg\n* libpng\n* Nginx \u0026 PHPFPM (or Apache \u0026 mod_php)\n* MySQL 5.5 or 5.6 database\n* Memcached\n* PHP 5.6 (with the following extensions)\n * gd\n * mbstring\n * mycrypt\n * mysql\n * mysqlnd\n * opcache\n * pecl-memcache\n * xml\n* Install PHP Composer via https://getcomposer.org/download\n\n\n# Production Install\n## PHP Setup\n1. Configure your php.ini settings. (typically located in /etc/php5/php.ini or nearby)\n * set `date.timezone` to `America/New_York` or whatever's appropriate\n * set `session.save_handler` to 'memcache'\n * set `session.save_path` to `localhost:11211` (should be whatever your memcache server is running)\n\n## PHP-FPM Setup (NGINX ONLY)\n1. Set a few php-fpm options (typically located in /etc/php-fpm.conf or /etc/php-fpm.d/*.conf)\n * user = nginx\n * group = nginx\n * `security.limit_extensions` to `.php`\n\n## NGINX Setup\nWe have a handful of url routing settings unique to Obojobo that need to be configured into the webserver.\n\n1. Set up your Nginx config, typically located in /etc/nginx/nginx.conf or /etc/nginx/conf.d/*.conf\n2. Use the rules set in `internal/docker/nginx.conf` as a reference. Note the docker example is setup so that obojobo is the only site.\n\n## APACHE SETUP\n1. Enable modrewrite `sudo a2enmod rewrite`\n3. Use `internal/docker/apache-vhost.conf` to update your apache virtual hosts. Ve sure to adjust the domain matching and directories if needed\n4. `sudo service apache2 restart`\n\n## Create Databases\nKeeping separate users for wordpress and obojobo tables helps to somewhat isolate data and permissions.\n\n1. Create 2 mysql users\n  * `obojobo_user`\n  * `obojobo_wp_user`\n\n2. Create 2 mysql databases\n  * `obojobo`\n  * `obojobo_wordpress`\n\n3. Give each user access to each database\n  * `GRANT ALL ON `obojobo`.* TO 'obojobo_user'@'%';`\n  * `GRANT ALL ON `obojobo_wordpress`.* TO 'obojobo_wp_user'@'%';`\n  * `FLUSH PRIVILEGES;`\n\n4. Create tables and fill sample data\n  * `mysql -uroot -p \u003c internal/docker/01_obojobo_tables.sql`\n  * `mysql -uroot -p \u003c internal/docker/02_obojobo_sampledata.sql`\n  * `mysql -uroot -p \u003c internal/docker/04_wordpress_tables.sql`\n  * `mysql -uroot -p \u003c internal/docker/05_wordpress_data.sql`\n\n5. Update wordpress tables to match your domain. The sample data uses `http://localhost`, use a tool like https://rudrastyh.com/tools/sql-queries-generator to change that to your own domain.\n\n## Set up Obojobo\n1. Git clone Obojobo `git clone git@github.com:ucfcdl/Obojobo.git /var/www/obojobo`\n2. Install composer libraries: In the /var/www/obojobo and run `composer install` or `php composer.phar install`\n3. Make sure the following directories are writable by the webserver user (usually nginx or www-user).\n * internal/logs\n * internal/media\n * internal/templates/compiled\n4. Copy `/internal/config/cfgLocal.default.php` to `/internal/config/cfgLocal.php` and customize\n\n## Configure\n\n1. Run through the options in cfgLocal.php for database connection info, paths, and hosts.\n\n\n\n\n# Customization\n\n## Wordpress Themes\n\n## Login Modules\n\n\n# Administration\nTBD\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fucfopen%2Fobojobo-classic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fucfopen%2Fobojobo-classic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fucfopen%2Fobojobo-classic/lists"}