Documentation revamped

This commit is contained in:
Christoph Haas 2018-08-08 14:14:40 +02:00
parent 844feb7f0e
commit fbee80f5f1
16 changed files with 377 additions and 1175 deletions

View file

@ -0,0 +1,89 @@
This file collects various notes about how certain aspects are implemented.
# Full text search
The pg_search Ruby gem is used for full-text searched in Rails.
See: https://github.com/Casecommons/pg_search
Reformatted SQL query for fulltext search:
SELECT COUNT(*) FROM "packages" WHERE (
(
(
to_tsvector('simple', coalesce("packages"."name"::text, ''))
||
to_tsvector('simple', coalesce("packages"."description"::text, ''))
||
to_tsvector('simple', coalesce("packages"."long_description"::text, ''))
)
@@
(
to_tsquery('simple', '''' || 'browser' || ' ''')
)
)
)
## Create search index to speed up searches significantly
CREATE INDEX packages_gin ON packages USING GIN( (to_tsvector('simple',
coalesce("packages"."name"::text, '')) || to_tsvector('simple',
coalesce("packages"."description"::text, '')) || to_tsvector('simple',
coalesce("packages"."long_description"::text, ''))) );
---------
Used: https://github.com/semaperepelitsa/jquery.fileupload-rails
Which is a gem for: https://github.com/blueimp/jQuery-File-Upload
---
Paperclip for attachment/screenshot file handlind within ActiveRecord
https://github.com/thoughtbot/paperclip
Rails 5 is said to contain functionality like that already.
Might be worth migrating to that at some time.
---
Importer
How Debian repositories are organized: https://wiki.debian.org/RepositoryFormat
---
Logging from within the application into the database's "log" table:
Log.log "foo"
or with section (default='frontend'):
Log.log "foo", "importer"
---
To create admin users
---------------------
rails c
> User.new(email: 'email@christoph-haas.de', password: 'secret').save
---
Multiple distributions (e.g. Ubuntu, Debian)
- new table: distributions
- id
- name (e.g. "Debian")
- description (e.g. "The Debian GNU/Linux distribution")
- url (http://www.debian.org/)
- type (apt, later: rpm)
- logo
- screenshots: new field for source_id
Admin interface to manage sources
---
AppStream data
- screenshots: new field for type ('user-generated', 'upstream', 'logo')
user-generated: uploaded by a random user
upstream: official screenshot from the developer
logo: not a screenshot - just a logo