{"id":16628360,"url":"https://github.com/prabhuignoto/boxd","last_synced_at":"2025-06-14T03:06:03.874Z","repository":{"id":44519220,"uuid":"153507192","full_name":"prabhuignoto/boxd","owner":"prabhuignoto","description":"Production grade web client for Dropbox","archived":false,"fork":false,"pushed_at":"2023-01-11T22:07:30.000Z","size":9214,"stargazers_count":9,"open_issues_count":11,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-09T12:51:17.415Z","etag":null,"topics":["apollo","apollo-client","dropbox","dropbox-api","dropbox-client","graphql","redis","vue","vue-dropbox","vuejs"],"latest_commit_sha":null,"homepage":"","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prabhuignoto.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-10-17T18:47:42.000Z","updated_at":"2023-01-13T06:15:34.000Z","dependencies_parsed_at":"2023-02-09T08:00:24.804Z","dependency_job_id":null,"html_url":"https://github.com/prabhuignoto/boxd","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/prabhuignoto/boxd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prabhuignoto%2Fboxd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prabhuignoto%2Fboxd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prabhuignoto%2Fboxd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prabhuignoto%2Fboxd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prabhuignoto","download_url":"https://codeload.github.com/prabhuignoto/boxd/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prabhuignoto%2Fboxd/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259752082,"owners_count":22905972,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apollo","apollo-client","dropbox","dropbox-api","dropbox-client","graphql","redis","vue","vue-dropbox","vuejs"],"created_at":"2024-10-12T04:32:24.444Z","updated_at":"2025-06-14T03:06:03.852Z","avatar_url":"https://github.com/prabhuignoto.png","language":"Vue","readme":"# Boxd\n\n\u003c!-- [![NPM Version][npm-image]][npm-url]--\u003e\n\u003c!-- [![Downloads Stats][npm-downloads]][npm-url] --\u003e\n[![Build Status](https://dev.azure.com/prabhummurthy/boxd/_apis/build/status/prabhuignoto.boxd?branchName=master)](https://dev.azure.com/prabhummurthy/boxd/_build/latest?definitionId=2\u0026branchName=master)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/91bf7101a6124e13a00a82dcc2721b26)](https://www.codacy.com/manual/prabhuignoto/boxd?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=prabhuignoto/boxd\u0026amp;utm_campaign=Badge_Grade)\n[![DeepScan grade](https://deepscan.io/api/teams/10074/projects/12749/branches/201583/badge/grade.svg)](https://deepscan.io/dashboard#view=project\u0026tid=10074\u0026pid=12749\u0026bid=201583)\n[![Depfu](https://badges.depfu.com/badges/d21407f97842c6a8247d973f016cea62/overview.svg)](https://depfu.com/github/prabhuignoto/boxd?project_id=13611)\n\nA Modern Web Client for Dropbox\n\n\u003c!-- ![app-login](github-app-screenshot.png) --\u003e\n![app-home](app-home.png)\n\n## Development Setup\n\n### Server Prerequisites \u0026 Installation\n\nRedis and MongoDB are mandatory prerequisites for the server to function. Please install [Redis](redis) and [MongoDB](mongo) before proceeding.\n\nPlease create a [Pusher](pusher) account and add the api details in the .env file (refer setting up the environment)\n\nOnce all the prerequisites are satisfied, simply start the server app by running the following command.\n\n```sh\ncd /server\nyarn run install \u0026\u0026 yarn run dev\n```\n\nIf everything setup correctly, you should see server running message\n\n### Client Prerequisites \u0026 Installation\n\nPlease create a [Pusher](pusher) account and add the api details in the .env file. refer [Setting up the environment](#Setting-up-the-environment)\n\n```sh\ncd /ui\nyarn run install \u0026\u0026 yarn run serve\n```\n\n## Preview\n\n![app-home](boxy-mockup.png)\n\n## Setting up the environment\n\n### Server settings\n\nFollowing are the mandatory environment variables for the Server\n\n| Environment Variable  | Description                                      | Value                                                    |\n|-----------------------|--------------------------------------------------|----------------------------------------------------------|\n| CLIENT_ID             | Client Id of the App registered with Dropbox     |                                                          |\n| CLIENT_SECRET         | Client Secret of the App registered with Dropbox |                                                          |\n| OAUTH_AUTHORIZE_URL   | Dropbox's authorization URL                      | [https://www.dropbox.com/oauth2/authorize](dropbox-auth) |\n| OAUTH_TOKEN_URL       | URL to fetch the access token                    | [https://api.dropboxapi.com/oauth2/token](dropbox-token) |\n| REDIS_HOST            | Host information of your locally installed redis | 127.0.0.1                                                |\n| REDIS_PORT            | Port info                                        | 6379                                                     |\n| REDIS_PASSWORD        | Password for Redis Authentication                |                                                          |\n| SESSION_COOKIE_MAXAGE |                                                  |                                                          |\n| SESSION_SECRET        |                                                  |                                                          |\n| MONGO_DB_URL          |                                                  | mongodb://localhost                                      |\n| MORGAN_LOG_MODE       |                                                  |                                                          |\n| CORS                  |                                                  |                                                          |\n| APP_LOGIN             | Frontend App's Login page URL                    |                                                          |\n| DASHBOARD             | Frontend App's Landing page URL                  |                                                          |\n| PUSHER_APP_ID         | Application Id of your Pusher Instance           |                                                          |\n| PUSHER_APP_KEY        | Application key of your Pusher Instance          |                                                          |\n| PUSHER_APP_SECRET     | Application secret of your Pusher Instance       |                                                          |\n\nThe server uses dotenv to load env variables. please create a .env file and add all the above mentioned settings.\n\n## Built with\n\n- [Vue.JS](vue) - The frontend app is written in Vue with complete support for [Typescript](graphql).\n- [Apollo Client](apollo) - The client uses vue-apollo to talk to the graphql server.\n- [Fastify](fastify) - Server app is powered by [Fastify](fastify) and it hosts the Apollo-Server. It also manages File upload/download , Authentication \u0026 Authorization.\n- [Graphql (powered by  apollo-server-fastify)](graphql) - Fastify internally uses apollo-server-fastify and exposes a GraphQLized endpoint for consumption.\n- [Dropbox API for Node.JS](dropbox) - Dropbox SDK for NodeJS.\n- [Redis for Session Management](redis) - Session Management is controlled by fastify-session. The sessions are stored in a dedicated Redis store.\n- [Agenda](agenda) - The Server employs agenda for various polling mechanisms (for e.g batch check of dropbox operations).\n- [MongoDB](agenda) - MongoDB is a prerequisite for Agenda (ref Agenda Docs for more information).\n\n## What's new\n\n- The UI now sports a new look and feel with a better user experience.\n- The server and the frontend apps have been rewritten in Typescript.\n- Migrated all the server side code from express to Fastify for better performance and simplicity.\n- Frontend app is migrated to the latest version of Vue.\n- Support for Pusher - Realtime notifications are now powered by Pusher.\n\n## Meta\n\nPrabhu Murthy – [@prabhumurthy2](https://twitter.com/prabhumurthy2) – prabhu.m.murthy@gmail.com\n\nDistributed under the MIT license. See `LICENSE` for more information.\n\n[https://github.com/prabhuingoto/](https://github.com/prabhuingoto/)\n\n\u003c!-- Markdown link \u0026 img dfn's --\u003e\n\n[vue]: https://vuejs.org\n[graphql]: https://graphql.org\n[apollo]: https://www.apollographql.com/\n[redis]: https://redis.io/\n[dropbox]: https://www.dropbox.com/developers/documentation/javascript\n[fastify]: https://fastify.io/\n[logo]: ./boxy-logo.png\n[home]: ./boxy-mockup.png\n[mongo]: https://www.mongodb.com/\n[pusher]: https://pusher.com\n[dropbox-auth]: https://www.dropbox.com/oauth2/authorize\n[dropbox-token]: https://api.dropboxapi.com/oauth2/token","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprabhuignoto%2Fboxd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprabhuignoto%2Fboxd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprabhuignoto%2Fboxd/lists"}