Giter Site home page Giter Site logo

conduit-clj-htmx's Introduction

Real World App

The mother of all demo apps

License: MIT

Clojure/Hiccup/HTMX/XTDB codebase containing RealWorld examples (CRUD, auth, advanced patterns, etc) that adheres to the RealWorld spec as much as possible while sticking to HATEOAS principals.

This codebase was created to demonstrate a fully fledged backend application built with Clojure/HTMX including CRUD operations, authentication, routing, pagination, and more.

How it works

Getting started

The app listens and serves on 0.0.0.0:3000.

Do drop into a nix shell (you will need the nix package manager installed)

nix develop

This will install the binaries needed as well as display useful information to get started developing.

Project status

In Progress...

Todo

  • Docker Build

    a build to let non-nix users run server

Doing

  • switch to libsql

Done

  • refactor to xtdb
    • swap out datalevin for xtdb
    • swap session to xtdb or some kv store other then datalevin
  • Auth
    • Add is authed middleware
    • Return and list errors from form
    • Login
      • Post to Login
      • Add user to session
      • Add user data to layout
      • Flash message on success
    • Sign Up
      • Post
      • Create user
      • Flash message on success
      • Sign out
      • Can re-login
  • Settings page
    • Get settings page
    • make errors dynamic
    • add post for form
    • add logout handler
    • Update settings
      • image
      • username
      • bio
      • email
      • password
  • Get new/edit articles page
    • edit tags
    • /editor/slug - edit
      • Load article and prefill page
      • update links to patch
    • /editor - new
  • Home
    • Render Page
    • load global articles
    • Load tags
    • load user feed articles
    • pagination
    • load tags from article preview (FE only)
  • Views
    • add banners
    • add error message on htmx 500
  • Comments
    • API
      • create comment on article
      • delete comment from article
      • get article comment by slug
    • Repo
      • create
      • read by id
      • list by article id
      • delete
    • Service
      • create
      • delete
      • mark if owner
  • Get Article page
    • delete if owner
    • Follow/Unfollow author
    • Favorite/Unfavorite article
    • comments
      • Get on load
      • mark if owner
      • delete comment if owner
    • /article/:slug
  • Articles
    • Repo
      • create
      • get by id
      • get by slug
      • list by favorited
      • update
      • favorite
      • unfavorite
      • delete
    • Service
      • create
      • find
      • update
      • favorite
      • unfavorite
      • delete article
    • Api
      • Filter articles
        • by author
        • by tag
        • by favorites
        • by author
      • Favorite
      • Unfavorite
      • Insert tags
      • Get popular tags
      • delete article
  • Profile page
    • Get profile page
    • link to settings
    • hide follow if own profile
    • Make content live
    • follow author
    • show favorited articles
  • Add seed data import
    • Add xtdb
    • Add init script
    • Add users
    • Add articles
    • Add default user on cli flag
    • Add author details
    • Add comments

conduit-clj-htmx's People

Contributors

berkeleytrue avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.