lindeb

command module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 23, 2018 License: GPL-3.0 Imports: 14 Imported by: 0

README

A simple link manager with powerful search. Built using Go, React, Elasticsearch and MariaDB.

The official deployment is available at lindeb.mau.lu.

Course info

This is also a database exercise project.

For the duration of the exercise project course, the repository will contain some useless files, such as this README section, the course documentation (also in Google Docs), SQL query files and the following links to some React components:

  • HUOM: kirjautumissivu toimii vain, jos et ole kirjautunut. Loput sivut toimivat vain, jos olet kirjautunut.
  • Kirjautumissivu verkossa ja repossa
  • Linkkilista verkossa ja repossa (etusivu, linkkien muokkaus ja linkkien poisto)
  • Linkin lisäys verkossa ja repossa
  • Tagilista verkossa ja repossa (tagien listaus, lisäys, muokkaus ja poisto)

API

Technologies

Backend

The backend uses Go with gorilla/mux for routing and go-sql-driver/mysql as the database driver. It has a REST-like JSON API that is documented with an OpenAPI document. The specification file is available here and a graphical API explorer is available here.

MariaDB is the recommended database management system, but anything compatible with MySQL should work. The search system uses Elasticsearch as its backend. Since the backend is written in Go, the server running the backend does not need any language-specific runtimes. However, a DBMS instance and an Elasticsearch instance must be available.

Frontend

The frontend uses React, Sass and modern JavaScript syntax. Support for old browsers is not guaranteed. The latest version of Firefox is recommended, but Chrome will work too.

Objective

The goal of this project is to create an easy-to-use system for saving links and searching saved links.

Scope
  • Authentication. Saved links are always private.
  • Saving links and deleting saved links
    • Saving a link should only require one or two clicks on the page being saved
  • Tagging and untagging links, managing tags
    • Adding descriptions for tags
  • Browsing links
    • Sorting and filtering by different fields (e.g. date added, by-domain, by-tag)
    • Searching for links based on page data (e.g. body content, title)
Extended scope
  • Sharing links to external platforms
  • Shortening links using mau\Lu
  • Advanced authentication
    • 2-factor auth (U2F and/or TOTP)
    • Email verification
      • Magic sign-in links
      • Password resets
Out of scope
  • All internal social features

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL