{"id":20033193,"url":"https://github.com/tbabej/roots","last_synced_at":"2025-05-05T05:31:07.090Z","repository":{"id":8042795,"uuid":"9453127","full_name":"tbabej/roots","owner":"tbabej","description":"Django-based platform for managing correspondence seminars.","archived":false,"fork":false,"pushed_at":"2018-09-20T00:20:37.000Z","size":1825,"stargazers_count":9,"open_issues_count":3,"forks_count":7,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-26T23:28:45.521Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tbabej.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}},"created_at":"2013-04-15T16:30:57.000Z","updated_at":"2018-10-26T14:53:02.000Z","dependencies_parsed_at":"2022-08-24T01:51:16.251Z","dependency_job_id":null,"html_url":"https://github.com/tbabej/roots","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tbabej%2Froots","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tbabej%2Froots/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tbabej%2Froots/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tbabej%2Froots/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tbabej","download_url":"https://codeload.github.com/tbabej/roots/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252445844,"owners_count":21749128,"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":[],"created_at":"2024-11-13T09:44:52.826Z","updated_at":"2025-05-05T05:31:06.684Z","avatar_url":"https://github.com/tbabej.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Roots\n=====\n\n[![Travis build status](https://travis-ci.org/tbabej/roots.svg?branch=master)](https://travis-ci.org/tbabej/roots)\n[![Coverage Status](https://coveralls.io/repos/tbabej/roots/badge.svg?branch=master)](https://coveralls.io/r/tbabej/roots?branch=master)\n[![Code Health](https://landscape.io/github/tbabej/roots/master/landscape.svg?style=flat)](https://landscape.io/github/tbabej/roots/master)\n[![Chat with developers](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/tbabej/roots)\n\n![Roots project](https://raw.githubusercontent.com/tbabej/roots/master/base/static/logo.png  \"Roots project\")\n\nRoots is a community-based site framework for seminar communities.\n\nExample of live production site is available at: [STROM website](https://seminar.strom.sk/)\n\nUnfortunately, only public parts of the website are available.\n\nMotivation\n----------\n\nMany educational seminar communities exist (see [this list for only those in Czech and Slovak republic](http://cs.wikipedia.org/wiki/Koresponden%C4%8Dn%C3%AD_semin%C3%A1%C5%99#P.C5.99ehled_semin.C3.A1.C5.99.C5.AF_v.C4.8Detn.C4.9B_t.C3.A9mat) ), and often each of them provides their own web portal for managing all the work and information that needs to be stored with varying degree of success.\n\nUsers, problem statements, solutions, submissions, leaderboards, evaluation, keeping the competitors up to date - all of that requires non-trivial effort to implement in the web interface.\n\nRoots is being built with the purpose of being an universal solution for correspondence seminars communities, while at the same time it keeps flexibility as one of the key requirements.\n\nTechnologies\n------------\n\nStanding on the shoulders of giants, build on Django.\n\nInstall\n-------\n\n### Using Vagrant\n\nA quickest platform independent way to try out (or develop) Roots is using\nVagrant.\n\n    $ git clone git://git.github.com/tbabej/roots.git         # clone the repository\n    $ cd roots\n    $ vagrant up\n\nVagrant will bring the development machine up, and configure development\nenviroment for you. To start your Roots instance, you simply:\n\n    $ vagrant ssh\n    $ cd roots\n    $ python manage.py runserver 0.0.0.0:8080\n\nRoots instance from within the Vagrant VM will be forwarded\nto http://localhost:8080.\n\nIt will be initialized with a small set of sample data (competition, season,\nseries, problemset). The default admin user has username 'admin' and password\n'admin'.\n\n### Local setup\n\nAnother recommended approach for trying Roots out is to use virtualenv,\nsince Roots has a lot of version-fixed dependencies:\n\n    $ virtualenv rootsenv\n    $ source rootsenv/bin/activate\n\nAfter that, setup itself is just running few commands:\n\n    $ git clone git://git.github.com/tbabej/roots.git         # clone the repository\n    $ cd roots\n    $ pip install -r requirements.txt                         # install the dependencies\n    $ cp roots/local_settings.py.in roots/local_settings.py   # setup default local settings\n    $ python manage.py syncdb --noinput                       # setup the database\n    $ python manage.py migrate                                # apply the migrations\n\nNow, the Roots should be ready to go. There are two more steps you'd probably want to do:\n\n    $ python manage.py createsuperuser                        # setup admin account\n    $ python manage.py runserver\n\nAfter that, a empty Roots site should run just fine!\n\n\nMain feature list (non-technical and non-exhaustive)\n----------------------------------------------------\n\n* Management of users\n  * Both participants and organizers\n  * Allows regular registrations and social logins\n* Management of correspondence competition\n  * Handling of seasons and series of problems\n  * Electronic user problem submission\n  * Dynamic leaderboards\n* Posts and static pages\n  * Organizers are allowed to post new information (in blog style), in WYSIWYG editors\n  * Support for static pages available\n* Sophisticated problem database for organizers\n  * Problems sorted into problemset, with various categories, severities, rankings, as well as usage stats available\n* Leaflet management\n* Camp management (as a reward for best competitors)\n* Other events registration management\n* Full site LaTex support\n* Built-in wiki for organizers\n\nAdoption\n--------\n\nI'm happy to help any correspondence seminar which wants to try Roots as a basis for their new site. Any feedback is welcome. Please submit issues, or send me a email (address can be found in the commits).\n\nI'm also looking for help coming from fellow developers, please reach out to me via pull requests for contributions or plain old email for any help you might need.\n\nAttribution\n-----------\n\nRoots project logo based on the [green engineering icon](http://thenounproject.com/term/green-engineering/12323/) by The Noun Project, which was relesed under public domain.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftbabej%2Froots","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftbabej%2Froots","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftbabej%2Froots/lists"}