GithubHelp home page GithubHelp logo

daniel-brai / jetei Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 1.3 MB

Jetei, a powerful and dynamic real-time collaborative knowledge base application designed to empower teams, communities, and individuals to collect, share, and organize information seamlessly.

License: MIT License

JavaScript 17.31% CSS 1.14% HTML 34.75% TypeScript 46.35% Handlebars 0.31% Shell 0.05% Dockerfile 0.09%
htmx nestjs nunjucks postgresql prisma redis tailwindcss websockets real-collaboration real-time-knowledge-base markdown-editor operational-transformation real-time-chat wip cloudinary v0-1-alpha

jetei's Introduction

Jetei

image

Description

Jetei, a powerful and dynamic real-time collaborative knowledge base application powered by operational transformation designed to empower teams, communities, and individuals to collect, share, and organize information seamlessly.

Features

✅Real-time collaboration

✅Personalized information organization adapting to your specific needs.

✅Quick information search

Technolgies Used

  • Nest.js: A progressive Node.js framework for building efficient, scalable, and maintainable server-side applications. Nest.js leverages TypeScript and follows a modular architecture, making it easy to organize and structure the codebase.

  • PostgreSQL A powerful and open-source relational database management system known for its reliability, data integrity, and extensive SQL compliance. PostgreSQL provides robust support for advanced features like transactions, concurrency control, and data replication, making it an excellent choice for storing and managing Jetei's knowledge base data.

  • HTMX A modern, lightweight library that enhances HTML with powerful client-side functionality. HTMX enables Jetei to deliver a seamless and responsive user experience by enabling real-time updates and interactions without the need for traditional page refreshes or complex JavaScript frameworks.

Demo

jetei-demo.mp4

Getting Started

To run Jetei locally on your machine, follow these steps:

  1. Prerequeistes: Ensure you have Node.js and Docker installed on your machine. If not, you can download them from their official website and follow their installation guide.

  2. Clone the Repository: Use the following command to clone the repository to your local machine:

    git clone https://github.com/Daniel-Brai/Jetei.git
  3. Configure credentials: Navigate to the base directory of the Jetei project, configure the credentials found in the .env.example file in a .env file.

  4. Run the application: Start up Docker on your local machine and navigate to the base directory of the Jetei. Use the following command to start the application:

    • On Linux or MacOS

      chmod +x ./scripts/docker.sh && ./scripts/docker.sh

Limitations and Minor stuff

  1. Currently, Jetei only supports 2 concurrent users on for the editing of notes to due to the limitations of character wise operational transformation over websockets. Note: An improvement on the conflict resolution (i.e OT Algorithm) on the note editor is planned.

  2. Again, Jetei is being rendered from the server as such user experience is not as reactive as I would want it to be. You may ask why not use React.js, Next.js, or Astro. Well I would still need to build an API backend for some services or use a service like Ably for realtime interactions or Upstash for Redis. I would have to deal with seperation between the client and server. I didn't want to deal with all this so I opted from doing everything with the server. Well, the UI will be improved gradually though I would have to write some Javascript.

  3. Jetei network payload isn't as optimal as I would like because I have not minified the Javascript yet and done general optimizations yet. Though it clocks under 200ms on my local machine for rendering and a request back to server to render out a data needed for that page but in free cloud environment Note: Since Jetei is still very early, I have still working on some UI smells when involve me writing some Javascript to make the data representable on page.

  4. I would need to optimise the database schema by least breaking down tables to a maximum of 3NF, take into account referential integrity contraints, and add indexes wherever necessary.

Contributing

Contributions are welcome! If you encounter any issues with the app or have new feature suggestions, please open an issue or submit a pull request

jetei's People

Contributors

daniel-brai avatar dependabot[bot] avatar

Watchers

 avatar

jetei's Issues

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.