tkone7 / lightread Goto Github PK
View Code? Open in Web Editor NEWOnline publishing platform where users can reward content providers with micro-bitcoin payments.
Online publishing platform where users can reward content providers with micro-bitcoin payments.
tbl_price
Description: Caches current prices for the desired cryptocurrency. This saves API calls.
-- auto-generated definition
create table tbl_price
(
fld_price_id serial not null
constraint tbl_price_pk
primary key,
fld_price_sym1 varchar(20) not null,
fld_price_sym2 varchar(20) not null,
fld_price_value double precision not null,
fld_price_update timestamp
);
alter table tbl_price
owner to postgres;
tbl_nodes
Description: Allows the storing of node information to which the application can talk to. In the column fld_active you can store if the node should be used. One can define multiple nodes and we will provide an interface to change them.
-- auto-generated definition
create table tbl_nodes
(
fld_node_id serial not null
constraint tbl_nodes_pk
primary key,
fld_node_tls text,
fld_node_macaroon text,
fld_node_ip varchar(255),
fld_active boolean default false
);
alter table tbl_nodes
owner to postgres;
The background image of an article is defined by its assigned category. Each category has one representative image defined by the admins.
Background images should be placed in source/view/assets/img/
The discussion arose wether to track the history of an article or not (e.g. WordPress). To accomlish this, we could implement a 1:N relation from tbl_Content to itself. The current primary key fld_cont_id will then always represent the "parent" or the "ancestor". When a new version of an article gets initialized, the ID of the parent-article will be held in a new field called fld_cont_parentid.
Each article must be assigned with a category. Hence, the draft view must provide an appropriate control.
This issue should track our advancements on the ERD and class diagram.
recycled from issue 10
I'd say we stick with your initial suggestion of providing a view where categories are shown in tiles. Once a user clicks on a tile, we show the appropriate articles, ascending sorted by publishing time.
A full search field should definitely be placed into the header. The given inputs could be passed through a sequence of "search locations". Let's say a user types in «bitcoin» then we first look for articles that share great similarity in their title. Secondly, we check, if the search term corresponds to an category. Thirdly, we look for articles that include the search term most often in their body.
As an enhancement, we could come up with a more sophisticated search algorithm (such as BM25 for which even a PHP implementation exists)
What should be included:
It does not have to be in the same extend as the reference project. AD likes diagrams!
Code documentation would be nice, but it's not expected that all the functions are documented within PHP comments.
recycled from issue #10
Let's force users to assign an article to one category out of a set of categories that we (admins) have predefined. Nonetheless, authors should still be able to tag their articles by 3 to 5 self-defined keywords. Consequently, this implies: {tbl_content[n]:[1]tbl_category} and {tbl_content[1]:[n]tbl_keyword}.
Small disadvantage: assigned category and keywords could contradict (weird author anyways)
Big advantages: easy to implement and great basis for building a search by category _view.
I think tbl_content <> tbl_keyword should also be a N:N relation so you can still filter by keyword and find many related articles.
update: Keywords are assigned under the relation {tbl_content[n]:[n]tbl_keyword}
We should allow the management of the full node as well as other system-wide parameters (maybe fee policy, management of user accounts, definition of categories) by administrators.
Role model on users (not every user is the same). I could think of either an admin flat (true|false) or an additional role entity that can be set on the tbl_user.
Manage not only one node but multiple and decide which one is active.
Use LNURL for withdrawing funds via QR codes:
https://github.com/btcontract/lnurl-rfc/blob/master/spec.md
Every time an article is visited the view should be logged so to show the author a statistics of how much his content is being viewed.
It should generally be possible to use the platform without any authentication. Paying and reading articles can be realized by local client cookies. If they are gone, of course, the user has to pay again to read. When it comes to receiving money (on our infrastructure of the author's behalf) we should know how to contact the author.
It must be ensured that switching between the tiers is possible. Especially between unverified and verified users we need to do additional checks.
To each article, one category has to be assigned. The set of possible categories is given by the adminitrators.
It would be nice, if the user could self-define how much gets previewed of published non-free article.
A rather simple solution would be to implement an additional field indicating the number of previewable charaters (not so intuitive though):
A more user-friendly solution would be a delimiter mark to be inserted in the markdown editor.
-- auto-generated definition
-- fld_user_id is a fk to the tbl_user (fld_user_id)
create table tbl_auth_token
(
fld_auth_id serial not null
constraint tbl_auth_token_pk
primary key,
fld_user_id integer
constraint tbl_auth_token_tbl_user_fld_user_id_fk
references tbl_user,
fld_auth_selector varchar(255) not null,
fld_auth_validator varchar(255) not null,
fld_auth_expiration varchar(255) not null,
fld_auth_type integer not null
);
alter table tbl_auth_token
owner to postgres;
added columns
-- fld_auth_id is a foreign key to tbl_auth_token (fld_auth_id)
fld_invc_lnurl_challenge varchar(510),
fld_invc_lnurl_secret varchar(510),
fld_auth_id integer
constraint tbl_invoice_tbl_auth_token_fld_auth_id_fk
references tbl_auth_token
create unique index tbl_invoice_fld_invc_lnurl_challenge_uindex
on tbl_invoice (fld_invc_lnurl_challenge);
create unique index tbl_invoice_fld_invc_lnurl_key_uindex
on tbl_invoice (fld_invc_lnurl_secret);
Come up with an idea how the posts can be tagged or assigned to categories.
This will be the main decision point. Should the user be forced to use existing categorizations or is he able to self define them? Advantages and disadvantages?
Is an article in exactly one category or can be assigned to multiple 'topics'?
Will there be a simple category list to browse through or do we supply a full search?
Because the program crashes when the invoice gets a little too long.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.