{"id":19554646,"url":"https://github.com/m4tx/egielda","last_synced_at":"2025-08-09T15:03:57.570Z","repository":{"id":17251498,"uuid":"20020892","full_name":"m4tx/egielda","owner":"m4tx","description":"Webapp that provides convenient way to trade books between students","archived":false,"fork":false,"pushed_at":"2016-03-14T21:42:04.000Z","size":1281,"stargazers_count":3,"open_issues_count":10,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-08T20:50:13.611Z","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":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/m4tx.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}},"created_at":"2014-05-21T12:47:41.000Z","updated_at":"2016-03-11T20:31:36.000Z","dependencies_parsed_at":"2022-08-25T12:41:31.737Z","dependency_job_id":null,"html_url":"https://github.com/m4tx/egielda","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m4tx%2Fegielda","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m4tx%2Fegielda/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m4tx%2Fegielda/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m4tx%2Fegielda/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/m4tx","download_url":"https://codeload.github.com/m4tx/egielda/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240810731,"owners_count":19861296,"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-11T04:28:27.035Z","updated_at":"2025-02-26T07:29:13.895Z","avatar_url":"https://github.com/m4tx.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"egielda [![Build Status](https://travis-ci.org/m4tx/egielda.svg?branch=master)](https://travis-ci.org/m4tx/egielda)\n=======\n\ne-Giełda is a project that aims to create easy and convenient way to trade books between students, both user-friendly and featureful.\n\nThe app is written in Python using Django. It makes use of HTML5 and CSS3 by using Semantic UI as a framework for user interface.\n\n## Features\n* Selling, buying books\n* Categories of books\n* Filling the information about the book automatically after typing the ISBN number (thanks to the Google Books API)\n* Statistics:\n  * Charts (visualising information about the amount of books sold, income, etc.)\n  * Raw data about books sold in each day\n  * Generating reports for each user about sold and unsold books\n* Permissions support, built-in groups (administrator, moderator that can accept books from users and sell them)\n* User verification support along with auto-verification via LDAP\n* Settings stored in the database: buying/selling time interval, order validity time, static information on homepage, profit per book for organizers\n* i18n support (Polish translation built-in)\n* More...\n\n## How it works, by and large\nFirst of all, a user goes to Sell page and choose the books they want to sell. Then, they come with these books to the administrator/moderator, who \"accepts\" them - i.e. marks them as available for buying. Then, when it comes to Purchasing, this is quite similar: the user goes to Purchase page, choose the books they want to buy and goes to the moderator who executes their order. What's important there is that the order has a validity time and books that are reserved in particular order are unavailable to others for buying until the order times out.\n\nIn e-Giełda, there are two models with \"Book\" in name: BookType and Book. The difference between them is that BookType contains only a common data about the book (title, publisher, etc.), while Book is a \"physical\" book with an owner, sold/unsold state, etc.\n\n## Dependencies\n* Python 3.2\n* Django 1.8\n* ldap3 (though LDAP support is not enabled by default)\n* Pillow\n\nFor building the assets:\n* Node.js with gulp\n\nFor running tests:\n* Selenium\n\n## Third-party components\ne-Giełda uses a few third-party components modified by us contained in `vendor/` directory. It includes:\n* Patched version of [NVD3.js](http://nvd3.org/) by [Novus Partners](https://www.novus.com/) licensed under Apache License 2.0\n* Slightly modified version of [jQuery Tablesorter](http://tablesorter.com/docs/) by [Christian Bach](https://twitter.com/lovepeacenukes) dual licensed under MIT License or GNU GPL v2/v3\n* Slightly modified (removed all languages but Polish and English) [Moment.js](http://momentjs.com/) by Tim Wood and Iskren Chernev licensed under MIT License.\n\nDescriptions of the modifications are provided in top file comments.\n\n`vendor/` directory also contains two git submodules:\n* Our [modified version](https://github.com/m4tx/egielda-Semantic-UI) of [Semantic UI](http://www.semantic-ui.com/) by [Jack Lukic](http://www.jacklukic.com) licensed under MIT License\n* [semantic-tokenfield](https://github.com/m4tx/semantic-tokenfield), our version of [bootstrap-tokenfield](https://github.com/sliptree/bootstrap-tokenfield) by [Sliptree](https://sliptree.com/) licensed under MIT License\n\nAlso, it uses following components that are loaded from CDN or downloaded as Node.js modules:\n* [D3.js](http://d3js.org/) by [Mike Bostock](http://bost.ocks.org/mike/) licensed under BSD License\n* [jQuery](http://jquery.com/) and [jQuery UI](http://jquery.com/) by The jQuery Foundation, Inc., both licensed under MIT License\n* [jQuery DateTimePicker plugin](http://xdsoft.net/jqplugins/datetimepicker/) by [Chupurnov Valeriy](https://github.com/xdan) licensed under MIT License\n\ne-Giełda uses Google Books API ([Terms of Service](https://developers.google.com/books/terms)) as well.\n\n## Installation\nThese are commands used to properly install development version of e-Giełda:\n\n```bash\n# We recommend creating a virtualenv first\nvirtualenv -p python3 egielda\ncd egielda\nsource bin/activate\n# Actual installing\ngit clone --recursive https://github.com/m4tx/egielda.git\ncd egielda\npip install -r requirements.txt\npython manage.py migrate\n# Build the assets\nnpm install\n# In order to make translations working\npython manage.py compilemessages\n# Superuser may be useful\npython manage.py createsuperuser\n```\nRemember that you shouldn't use default `settings.py` on production. Also, bear in mind that SQLite is unsuitable for anything but e-Giełda development.\n\nPlease note that our migration script automatically creates three groups (moderator, admin, sysadmin) and gives them some permissions. If you change anything and want to restore default permissions for these groups, you have to remove **all** permissions from at least one group, then run `migrate`.\n\ne-Giełda uses gulp tool to build CSS and JS files. `postinstall` script in npm calls `gulp build` automatically (actually, `npm run gulp-build`, in case that gulp is not installed globally).\n\n## LDAP Support\nLDAP support can be enabled in `settings.py` file by setting `USE_LDAP_VERIFICATION` value to True and filling out the rest of `LDAP_*` settings below.\n\nEnabling LDAP support changes user verification behavior. \"School ID\" field disappears from registration form, and when one clicks \"Register\", e-Giełda checks whether a user with provided personal data exists in LDAP. If so then the user is automatically verified, and otherwise the next form is shown, allowing them to verify their account \"the normal way\", i.e. by uploading a scan of their school ID.\n\n## License\nCopyright (C) 2014-2015 [Mateusz Maćkowski](http://m4tx.pl) and Tomasz Zieliński\n\ne-Giełda is free software: you can redistribute it and/or modify\nit under the terms of the GNU Affero General Public License as\npublished by the Free Software Foundation, either version 3 of the\nLicense, or (at your option) any later version.\n\ne-Giełda is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU Affero General Public License for more details.\n\nYou should have received a copy of the GNU Affero General Public License\nalong with e-Giełda.  If not, see http://www.gnu.org/licenses/.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm4tx%2Fegielda","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fm4tx%2Fegielda","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm4tx%2Fegielda/lists"}