This is a simple example project demonstrating data synchronization using a simplified JSON Meta Application Protocol (JMAP) approach.
- Backend: Go server with SQLite database, handling JMAP-like requests for Todo items.
- Frontend: React client interacting with the backend using JMAP-style JSON requests.
- Functionality: Create, read, update, and delete Todo items.
Backend (Go):
- Navigate to the
backenddirectory:cd backend - Initialize Go modules:
go mod tidy - Run the backend server:
go run main.go- The server will start on
http://localhost:8080.
- The server will start on
Frontend (React):
- Navigate to the
frontenddirectory:cd frontend - Install dependencies:
npm installoryarn install - Start the frontend development server:
npm startoryarn start- The frontend will be accessible at
http://localhost:3000.
- The frontend will be accessible at
Open your browser and go to http://localhost:3000. You should see the Todo application.
- Simplified JMAP: This is a highly simplified example and not a fully compliant JMAP implementation.
- No Authentication: Authentication and authorization are not implemented for simplicity.
- Polling: The client uses simple polling to check for updates, not efficient push notifications or long-polling.
- Minimal Error Handling: Error handling is basic for demonstration purposes.
- Example Todo Capability: The
urn:example:params:jmap:todocapability is used as an example. In a real JMAP environment, you would use registered or well-defined capabilities.
This project is for educational purposes to illustrate the basic principles of JMAP-like data synchronization. For production systems, a full and robust JMAP implementation would be necessary.