Notes Vault is a comprehensive note-taking application that allows users to create, manage, and share text and voice-to-text notes. It leverages modern web technologies and integrates with external services for enhanced functionality.
- 🤖 Introduction
- ⚙️ Tech Stack
- 🔋 Features
- 📽️ Demo
- 🤸 Quick Start
- 🕸️ API Reference
- 🔗 Author
Notes Vault is a versatile note-taking application designed to streamline information management. Whether you're capturing ideas, meeting minutes, or voice memos, Notes Vault offers a robust platform to store, organize, and share your notes efficiently.
With features including text and voice-to-text note creation, PDF export, and seamless sharing, Notes Vault caters to a wide range of users. Built on a solid foundation of React JS for the frontend and Spring Boot for the backend, the application delivers a user-friendly experience while ensuring data security through MySQL database storage.
- React JS: A JavaScript library for building user interfaces, providing a component-based architecture for efficient development and maintainability.
- Spring Boot: A Java-based framework that simplifies the development of RESTful APIs, enabling rapid backend development and deployment.
- MySQL: A relational database system for securely storing user data, including notes, metadata, and user information.
- AssemblyAI API: For accurate and efficient transcription of voice notes to text.
- iTextPdf: To generate PDF documents from note content for easy sharing and archiving.
- Web Share API: To facilitate seamless sharing of notes across different platforms.
👉 Text Note Creation and Editing: Users can create and modify text-based notes.
👉 Voice-to-Text Conversion: Users can record audio notes and convert them to text using AssemblyAI API.
👉 PDF Export: Notes can be exported as PDF documents for easy sharing and archiving.
👉 Note Sharing: Users can share notes with others using the Web Share API.
👉 Secure Storage: Notes are stored securely in a MySQL database.
👉 User-Friendly Interface: Built with React JS for an intuitive user experience.
👉 RESTful API: Provides endpoints for CRUD operations on notes.
Demo.Video.mp4
Follow these steps to set up the project locally on your machine.
Prerequisites
Make sure you have the following installed on your machine:
- Git
- Node.js
- npm (Node Package Manager)
- Apache Maven or Eclipse IDE
Cloning the Repository
git clone https://github.com/AtharvaIngale/Notes-Vault.git
Configure the database:
Create a new MySQL database and update the configuration in Backend/Notes-Vault/src/main/resources/application.properties
:
spring.datasource.url=jdbc:mysql://localhost:3306/your-database-name
spring.datasource.username=your-database-username
spring.datasource.password=your-database-password
Backend Installation
Navigate to the backend directory:
cd Backend/Notes-Vault
Install dependencies:
mvn clean install
Start the Spring Boot application:
java -jar target/notes-vault-backend.jar
OR
Using Eclipse IDE
Import the Backend/Notes-Vault
folder as existing maven project then, run the NoteVaultApplication.java file in Eclipse IDE.
Frontend Installation
Navigate to the frontend directory:
cd Frontend/notes-vault
Install the project dependencies using npm:
npm install
Running the Project:
npm start
Open http://localhost:3000 in your browser to view the project.
METHOD | PATH | DESCRIPTION |
---|---|---|
POST |
/users |
new user registration |
PUT |
/users |
update user |
GET |
/users/{id} |
find and view user |
DELETE |
/users/{id} |
delete user |
POST |
/users/verifyByEmail |
user login |
GET |
/users/{id} |
all users |
METHOD | PATH | DESCRIPTION |
---|---|---|
POST |
/notes/{user_id} |
add new note |
PUT |
/notes/{user_id} |
update note |
GET |
/notes/{id} |
find and view note |
DELETE |
/notes/{id} |
delete note |
GET |
/notes/byUser-ID/{user_id} |
all notes |
GET |
/notes/download/{id}/pdf |
convert notes to pdf |
The project is still in progress to add more features