Commit 3431710e authored by amirouche's avatar amirouche

README.org: rework and include better TODO section

parent 56d73605
* culturia
Simple, easy to use with good default personal knowledge base that
allows users to interact with the rest of the world over the Internet.
culturia is an application written in GNU Guile that will allow
to share messages, posts, code and links.
Culturia wants to be for the Internet what GNOME is for the desktop.
* Development
Clone the following repository:
git clone https://framagit.org/a-guile-mind/culturia.next
Create merge requests (aka. pull requests) in framasoft's gitlab or
send patches to amirouche+dev@hypermove.net.
* ROADMAP
** 0.0 blog engine
*** easy: rename "handler" to "router" and add a "route/" prefix to all routes
*** easy: in procedure names replace /template with /sxml
*** easy: add navigation form on every page
*** easy: Add transactions to all queries
*** easy: Add autotools (see gnunet-guile2)
*** easy: Add guix package definition
*** easy: Improve how messages are displayed in index
*** easy: Make it a proper guile module
Users will need to create an executable guile module to configure the
application. Right now, it's only pepper.
*** easy: look up for TODO in the code
*** easy: Add a datetime library using relative name and GMT
*** medium: Disable the signup form after the first signup
*** medium: Add search engine with public/private support
Search is based on culturia.one ix.scm, except that the signature must
be:
(index uid html keywords)
Where terms will be extracted from HTML as it's already done in
culturia.one. KEYWORDS will be list of string terms that will be
indexed without preprocessing, in particular without stripping
punctuation. This will allow to use the inverted index to index UID
along specific dimensions. For instance,
- domain=example.com
- hashtag=mezangelle
Those terms will be included in the search query and will be subject
to the TF-IDF scoring which will allow for efficient queries along
those specific fields.
Maybe there is better way to go here...
*** medium: Add hashtags with search support
*** medium: Add post with markdown and hashtag support
*** medium: Add analytics
*** medium: Add props
*** medium: fix index page rendering
*** medium: Add links with hashtags and search engine integration
*** medium: Add pastes with hashtags and search engine integration
Maybe recode the highlighter using combinatorix & traversi. Embed
combinatorix with poor error handling support.
*** hard: Add generic timeserie support for fail2ban and analytics
*** hard: write documentation (makeinfo or sfx?)
*** hard: Implement fail2ban
*** hard: Add atom feed to index page with search support
** 0.1
*** medium: fix wiredtiger
**** easy: move grf3: procedure at the top of web.scm
**** medium: unique identifiers must be random 64 bits integers
*** easy: Add custom template support
*** easy: Add yearly overview
** 0.2
*** medium: Add todo list
** 0.3
*** medium: Add issue tracker
** 0.4
*** unknown: Add ActivityPub support
** 0.5
*** hard: Add git support
** maybe
*** easy: package argon2.scm
*** easy: Add support for next query parameter in /signin
*** unknown: check if I can use and-let* from srfi-2
The follow ``/signin?next=/?query=/publish message ...'' must redirect
'next' Not sure how this interacts with the navigation form.
*** unknown: Add regular visual navigation
*** unknown: Add support graphql-like query language in templates
* Security
CSRF protections are not implemented.
Visitors do not use cookies at all. But the owner needs cookies to
sigin. It's recommended to disable javascript or to use a specific
browser session dedicated to culturia to interact with the private
part of the application, for the time being.
* security
** CSRF protections
** timeseries
** fail2ban
* web: signin: add support for next
The follow ``/signin?next=/?query=/publish message ...'' must redirect 'next'
* add transactions to all queries
* add tags
* add post
* add link
* add code
* add search from culturia.one's ``ix.scm''
* rename handler to router
* rename index to route/index etc...
* replace /template with /sxml
* add navigation form on every page
* clean up index rendering
* add support for markdown
* add support for hashtags
* check if I can use and-let* from srfi-2
* look up for TODOs with the following command: ag TODO
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment