How jleonoras/uplinq works
UplinQ turns a Google Drive share URL into a direct-download URL and a remote-upload link. The user enters the URL in the client form; the client calls the conversion API, whose controller converts the URL, scrapes Google Drive’s download page for file fields, and builds the result returned to the form for copying. The client also provides sharing guidance, feature highlights, notifications, and fallback routing; the server exposes a health check and limits conversion requests. Some helper implementations were not sampled, so their internal behavior is not expanded.
Main entry points: Home.jsx Home page · App.jsx App routing · useLinkGenerator.jsx Link generator · convertRoutes.js Convert route
Components 23
Client experience
- Home page
client/src/pages/Home.jsx - Link form
client/src/components/LinkForm.jsx - Link generator
client/src/hooks/useLinkGenerator.jsx - API config
client/src/utils/api.js - Notifications
client/src/context/NotificationContext.jsx - Notification display
client/src/components/NotificationDisplay.jsx - Sharing guide
client/src/components/HowToModal.jsx - Feature cards
client/src/components/FeatureCard.jsx - Animations
client/src/utils/animations.js - App routing
client/src/App.jsx - Not found page
client/src/pages/NotFound.jsx - Footer
client/src/components/Footer.jsx
Conversion API
- Convert route
server/routes/convertRoutes.js - Rate limiting
server/middleware/limiter.js - Conversion controller
server/controllers/convertController.js
Conversion processing
- Download URL converter
server/utils/linkConverter.js - Drive page scraper
server/utils/scrape.js - Remote link builder
server/utils/createRemoteUploadLink.js
Health and runtime
- Server runtime
server/server.js - Health route
server/routes/healthRoutes.js - Health check
server/controllers/healthController.js
Other components
- User
- Google Drive
Connections 28
- User → Home page: opens
- Home page → Link form: renders
client/src/pages/Home.jsx - Home page → Feature cards: renders
client/src/pages/Home.jsx - Home page → Sharing guide: renders
client/src/pages/Home.jsx - Home page → Animations: uses
client/src/pages/Home.jsx - Feature cards → Animations: uses
client/src/components/FeatureCard.jsx - Link form → Link generator: uses
client/src/components/LinkForm.jsx - Link form → Notifications: reads
client/src/components/LinkForm.jsx - Link form → Sharing guide: renders
client/src/components/LinkForm.jsx - Link generator → API config: uses
client/src/hooks/useLinkGenerator.jsx - Link generator → Notifications: notifies
client/src/hooks/useLinkGenerator.jsx - Link generator → Convert route: POSTs conversion
client/src/hooks/useLinkGenerator.jsx - Convert route → Rate limiting: applies limits
server/routes/convertRoutes.js - Convert route → Conversion controller: dispatches to
server/routes/convertRoutes.js - Conversion controller → Download URL converter: converts URL
server/controllers/convertController.js - Conversion controller → Drive page scraper: scrapes page
server/controllers/convertController.js - Conversion controller → Remote link builder: builds result
server/controllers/convertController.js - Drive page scraper → Google Drive: navigates to
server/utils/scrape.js - Convert route → Link generator: returns result
client/src/hooks/useLinkGenerator.jsx - App routing → Home page: routes to
client/src/App.jsx - App routing → Not found page: routes to
client/src/App.jsx - App routing → Footer: renders
client/src/App.jsx - App routing → Notification display: renders
client/src/App.jsx - App routing → Notifications: provides context
client/src/App.jsx - Notification display → Notifications: reads
client/src/components/NotificationDisplay.jsx - Server runtime → Convert route: mounts route
server/server.js - Server runtime → Health route: mounts route
server/server.js - Health route → Health check: dispatches to
server/routes/healthRoutes.js