Skip to content

Muswaddaty is an open-source, block-based, collaborative online text editor inspired by Notion. It offers a rich and intuitive user interface for creating and editing content collaboratively.

Notifications You must be signed in to change notification settings

mohamed-lifa7/muswaddaty

Repository files navigation

Muswaddaty

Version: 0.1.0

Muswaddaty is an open-source, block-based, collaborative online text editor inspired by Notion. It offers a rich and intuitive user interface for creating and editing content collaboratively.

Features

  • Collaborative real-time text editing.
  • Block-based editor.
  • User authentication and management.
  • Responsive design.
  • Export content to PDF.
  • Theme support.
  • Rich text formatting.

To-do

  • Add support for more block types.
  • Add support for inline code blocks.
  • Add support for code blocks.
  • Implement a revision history feature.
  • Fix the Export documents in PDF format.
  • Implement support for custom permissions and access control.
  • Search functionality.
  • Notifications.
  • Mobile app.

Demo

You can try out Muswaddaty online here.

Requirements

To run Muswaddaty locally, you'll need the following:

  • Node.js 14.x or later
  • PostgreSQL 16.x or later
  • pnpm 8.14.1 or later

You'll also need to sign up for the following services:

Tech Stack

Muswaddaty is built with the following technologies:

Frontend:

  • Next.js (React framework)
  • Tailwind CSS (CSS framework)
  • Shadcn UI (UI components)
  • Framer Motion (animations)
  • React Hook Form (form management)
  • Liveblocks (real-time collaboration)

Backend:

  • Prisma (ORM for database management)
  • NextAuth.js (authentication)
  • Node.js (runtime environment)

Utilities:

  • TypeScript (static typing)
  • ESLint (linting)
  • Prettier (code formatting)

Installation

To get started with Muswaddaty, follow these steps:

  1. Clone the repository:
git clone https://github.com/mohamed-lifa7/muswaddaty.git

cd muswaddaty
  1. Install dependencies:
pnpm install
  1. Set up environment variables:

Create a .env file in the root directory and add your environment variables. Refer to .env.example for required variables.

  1. Push the database schema:
pnpm run db:push
  1. Generate Prisma client:
pnpm postinstall
  1. Start the development server:
pnpm run dev

Usage

Once the development server is running, you can access the application at http://localhost:3000. Here are some basic operations you can perform:

  • Create a new document: Click the "New Document" button on the homepage.
  • Edit a document: Click on an existing document to open it in the editor.
  • Collaborate: Share the document URL with others to start collaborating in real-time.

Scripts

Here are some useful scripts you can use during development:

  • pnpm run build: Build the project for production.
  • pnpm run db:push: Push the Prisma schema to the database.
  • pnpm run db:studio: Open Prisma Studio for database management.
  • pnpm run dev: Start the development server.
  • pnpm run lint: Run ESLint to check for linting errors.
  • pnpm run lint:fix: Fix linting errors automatically.
  • pnpm run start: Start the production server.

Contributing

We welcome contributions from the community! To contribute to Muswaddaty, follow these steps:

  1. Fork the repository.
  2. Create a new branch:
git checkout -b feature/your-feature-name
  1. Make your changes.
  2. Commit your changes:
git commit -m 'Add some feature'
  1. Push to the branch:
git push origin feature/your-feature-name
  1. Open a pull request.

Please ensure your code adheres to the project's coding standards and passes all tests.

License

This project is licensed under the MIT License. See the LICENSE file for more details.

Contact

If you have any questions or suggestions, feel free to reach out to us:

Email: [email protected]

GitHub: Mohamed-lifa7

Or one of these :

Graduation poject framer Dr. Zaiz Fouazi

Project Contributor Ahmed Hafsi

Thank you for using Muswaddaty!

About

Muswaddaty is an open-source, block-based, collaborative online text editor inspired by Notion. It offers a rich and intuitive user interface for creating and editing content collaboratively.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published