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.
- 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.
| Component | Technology |
|---|---|
| Backend | PHP, SQLite, PDO |
| Frontend | React 19, Vite, Bootstrap 5 |
| Desktop | Java (CLI) |
| Tools | ESLint, Vite, NPM |
- Navigate to the
webdirectory:cd web - Install dependencies:
npm install - Start the development server:
npm run dev
- Ensure you have PHP installed with
pdo_sqliteextension enabled. - Serve the
backenddirectory via a local PHP server. - The database will be automatically initialized in
backend/data/notesync.dbupon the first request.
Access the application in your browser (usually http://localhost:5173). Use the provided login/signup screen to start managing your notes.
Compile and run the NotesCLI.java file:
javac -cp .:lib/json-20230227.jar android/src/NotesCLI.java
java -cp .:lib/json-20230227.jar NotesCLIFollow the interactive menu to register, login, and sync your notes.
/web: React application source code./backend: PHP API routes and SQLite database files./android: Java CLI client implementation.
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.
Contributions are welcome! Please fork this repository and submit a pull request with your changes.
This project is currently unlicensed.
Built with 💙 for the community. If you found this helpful, consider starring the repo!