Skip to content

Latest commit

 

History

History
61 lines (44 loc) · 1.66 KB

README.md

File metadata and controls

61 lines (44 loc) · 1.66 KB

Dev setup

Installation

Make sure you've already installed OPAM:

brew install opam

Now run the following to checkout the project, create an opam switch (like a sandbox so the dependencies in multiple projects don't cause havoc with one another), and install all the dependencies (this will take awhile if it's your first time, a lot to compile):

git clone [email protected]:datodev/sinsi.git
make deps
eval `opam config env`

To add opam dependencies, edit Makefile.user under the deps target to add the opam invocation.

Running the server

make clean && make && ./main.byte

Running tests

make clean && make test && ./test.byte

Regenerating the Makefile

The make file is generated via * Oasis a project management tool that wraps

  • Ocamlbuild, a general app build tool that uses
  • Ocamlfind, a tool used to automatically figure out module names and dependencies in a project

If you make an edit to the _oasis file, then to get a new Makefile, run:

oasis setup -setup-update dynamic

Requirements

  • Multitenant (per-user read/unread status, etc.)
  • Parse RSS/Atom feeds
  • Disambiguate individual posts for storage
  • Mark post read/unread
  • Subscribe/unsubscribe from feeds
  • Worker thread to fetch global list of feeds and store them in the db
  • HTML UI to read posts ** Manage feeds view ** Read posts view ** Don't show read posts older than N minutes ** Sort by newest
  • UUID-based feed lists
  • User-based feed lists as a stretch goal