Skip to content

almhdy24/NotesSync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NotesSync 📝

NotesSync is a cross-platform note synchronization system designed for seamless access to your personal notes. It features a robust PHP backend using SQLite, a responsive React-based web application, and a Java-based CLI client for desktop users.

JavaScript PHP React SQLite

📖 Table of Contents

✨ Features

  • Cross-Platform: Access notes via Web UI or Java CLI.
  • User Authentication: Secure JWT-based session management.
  • CRUD Operations: Create, Read, Update, and Delete notes with ease.
  • Search Functionality: Quickly find specific notes via the web interface.
  • Sync Status: Real-time feedback on synchronization status.
  • Responsive Design: Mobile-friendly web interface powered by Bootstrap.

🛠 Tech Stack

Component Technology
Backend PHP, SQLite, PDO
Frontend React 19, Vite, Bootstrap 5
Desktop Java (CLI)
Tools ESLint, Vite, NPM

🚀 Installation

Web Application

  1. Navigate to the web directory: cd web
  2. Install dependencies: npm install
  3. Start the development server: npm run dev

Backend

  1. Ensure you have PHP installed with pdo_sqlite extension enabled.
  2. Serve the backend directory via a local PHP server.
  3. The database will be automatically initialized in backend/data/notesync.db upon the first request.

💻 Usage

Web App

Access the application in your browser (usually http://localhost:5173). Use the provided login/signup screen to start managing your notes.

Java CLI

Compile and run the NotesCLI.java file:

javac -cp .:lib/json-20230227.jar android/src/NotesCLI.java
java -cp .:lib/json-20230227.jar NotesCLI

Follow the interactive menu to register, login, and sync your notes.

📂 Project Structure

  • /web: React application source code.
  • /backend: PHP API routes and SQLite database files.
  • /android: Java CLI client implementation.

📡 API Reference

All endpoints are protected by an Authorization: Bearer <token> header:

  • POST /routes/login.php: Authenticates user.
  • GET /routes/notes_list.php: Retrieves all user notes.
  • POST /routes/notes_add.php: Creates a new note.

🤝 Contributing

Contributions are welcome! Please fork this repository and submit a pull request with your changes.

📜 License

This project is currently unlicensed.

🔗 Important Links


Built with 💙 for the community. If you found this helpful, consider starring the repo!

About

Simple cross-platform note synchronization system with PHP backend, React web app, and Android client.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors