Welcome to Echoes, a modern real-time collaboration tool designed for seamless document creation, editing, and sharing. Echoes enables users to freely document their thoughts, share files, and work together effectively on collaborative projects, similar to Google Docs.
- Document Creation & Editing: Compose documents with rich text and save changes in real-time.
- Collaboration & Sharing: Share documents with other users, granting permissions for actions like read, write, delete, and share.
- User Authentication: Secure authentication with registration, login, and email verification.
- Version Control: Track changes with a changelog for each document, offering a history of edits and updates.
- Role-Based Permissions: Assign specific permissions to collaborators to control document access and actions.
- Responsive UI: Designed to be fully responsive and accessible across multiple device types.
- Frontend: React.js, CSS, HTML
- Backend: Node.js, Express
- Database: MongoDB
- Authentication: JWT, Email verification
- Request Validation: Joi
- Other Tools: Docker (for containerization), GitHub (for version control)
To get started with Echoes on your local machine, follow these steps:
- Node.js (v14 or higher)
- MongoDB (locally or hosted instance)
- Git
-
Clone the Repository
git clone https://github.com/Oussema39/echoes.git cd echoes -
Install Dependencies
npm install
-
Set Up Environment Variables
- Create a
.envfile in the root directory. - Add the following environment variables:
MONGO_URI=your_mongodb_connection_string JWT_SECRET=your_jwt_secret EMAIL_USER=your_email_address EMAIL_PASS=your_email_password - Create a
-
Run the Application
npm start
The app should now be running on http://localhost:3000.
- Registration: Users can register by providing an email and password, followed by email verification.
- Login: Authenticated users can access their documents and begin editing or sharing.
- Create/Edit Documents: Users can create new documents or edit existing ones with real-time saving.
- Sharing & Permissions: Set up permissions when sharing a document, allowing specific collaborators to read, write, delete, or share.
Each document maintains a changelog, allowing users to track modifications made over time.
We welcome contributions to improve Echoes! To contribute, please:
- Fork the repository.
- Create a feature branch (
git checkout -b feature/YourFeature). - Commit your changes (
git commit -m 'Add your feature'). - Push to the branch (
git push origin feature/YourFeature). - Create a pull request.
For significant changes, please open an issue first to discuss what you would like to add or change.
This project is licensed under the MIT License. See the LICENSE file for more details.
Thank you for using Echoes! If you have any questions or suggestions, please feel free to reach out.