Uniboard
is a cross-platform universal clipboard and file-sharing platform. Share text, URLs, files and more across all your devices with ease.
- Golang - Backend server
- net/http - HTTP server
- gorilla/mux - HTTP router
- gorilla/websocket - Websocket server
- database/sql - SQL database driver
- Planetscale - Remote MySQL database
- Planetscale schema for fields:
- created_at
- modified_at
- NewUser method integrate instead of decoding directly to struct
- Errors thrown in api route functions should be thrown through JSON responses and shouldn't the server
- Remove unnecessary log.Fatal calls causing server to crash - only log.Default calls and Fatal calls in necessary places
- custom log file location of source file instead of logger.go
- Protected Routes middleware wrapper
-
Auth
- Register
- Login
- Profile
- GET - Get profile
- PUT - Update profile (Later) [Profile Picture, Name, Email]
- Logout
- Delete
- Change password (Later)
- Forgot password (Later)
-
Device
- GET - Get all devices
- POST - Add new device
- Device details like:
- OS
- Version
- Device Name
- Device ID
- Device details like:
- DELETE - Delete device
- Notes: New Device should be added on
Login
- Notes: New Device should be added on
-
Pushes (WebSocket server)
- Send a message
- Specify TYPE
- Text/URL
- File/Blob
- Specify Device
- Default - Send to all devices(pool)
- Send to all devices
- Send to specific device
- Notification
- DB operations