diff --git a/LICENSE b/LICENSE index 1973ea2e..6550fc12 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) 2017-2018 LBRY Inc +Copyright (c) 2017-2018 LBRY Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, @@ -9,7 +9,7 @@ following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +THE SOFTWARE IS PROVIDED "AS-IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md index 3b21ab18..1fa3c380 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Spee.ch -Spee.ch is a web app that reads and publishes images and videos to and from the [LBRY](https://lbry.io/) blockchain. You are encouraged to contribute to the shared code base, or fork it and make it your own. +Spee.ch is a web app that reads and publishes images and videos to and from the [LBRY](https://lbry.io/) blockchain. You are encouraged to contribute to the shared code base, or fork it and make it your own. -You can create your own custom version of spee.ch by installing this code base and then creating your own custom components and styles to override the defaults. (More details / guide on how to do that coming soon.) +You can create your own custom version of spee.ch by installing this code base and then creating your own custom components and styles to override the defaults. (More details/guide on how to do that coming soon.) ## Quickstart @@ -11,9 +11,9 @@ _note: this is the quickstart guide, for an in-depth step-by-step overview visit * [node](https://nodejs.org) * [MySQL](https://dev.mysql.com/doc/refman/8.0/en/installing.html) * [`lbry`](https://github.com/lbryio/lbry) daemon - * note: retrieve an address from the daemon and send your wallet a couple credits (or join us in the [#speech discord channel](https://discord.gg/YjYbwhS) and we will send you a few) + * note: retrieve an address from the daemon and send your wallet a few credits (or join us in the [#speech discord channel](https://discord.gg/YjYbwhS) and we will send you a few) * [FFmpeg](https://www.ffmpeg.org/download.html) - + #### Clone this repo ``` $ git clone https://github.com/lbryio/spee.ch.git @@ -41,17 +41,17 @@ _note: make sure lbry is running in the background before proceeding_ $ npm run start ``` -#### view in browser - * visit [http://localhost:3000](http://localhost:3000) in your browser - -#### customize your app +#### View in browser + * Visit [http://localhost:3000](http://localhost:3000) in your browser -check out the [customization guide](https://github.com/lbryio/spee.ch/blob/readme-update/customize.md) to change your app's appearance and components +#### Customize your app + +Check out the [customization guide](https://github.com/lbryio/spee.ch/blob/readme-update/customize.md) to change your app's appearance and components #### (optional) add custom components and update the styles - * create custom components by creating React components in `src/views/` (further instructions coming soon) - * update the CSS by changing the files in `public/assets/css/` (further instructions and refactor coming soon) + * Create custom components by creating React components in `src/views/` (further instructions coming soon) + * Update the CSS by changing the files in `public/assets/css/` (further instructions and refactor coming soon) #### (optional) Syncing the full blockchain * Start the `spee.ch-sync` tool available at [billbitt/spee.ch-sync](https://github.com/billbitt/spee.ch-sync) @@ -74,7 +74,7 @@ Parameters: * `license` (optional) * `title` (optional) * `description` (optional) - * `thumbnail` url to thumbnail image, for .mp4 uploads only (optional) + * `thumbnail` URL to thumbnail image, for .mp4 uploads only (optional) * `channelName` channel to publish too (optional) * `channelPassword` password for channel to publish too (optional, but required if `channelName` is provided) @@ -100,11 +100,11 @@ response: } } ``` - -#### /api/claim/availability/:name + +#### /api/claim/availability/:name method: `GET` -example: +example: ``` curl https://spee.ch/api/claim/availability/doitlive ``` @@ -121,12 +121,12 @@ response: ### Stack The spee.ch stack is MySQL, Express.js, Node.js, and React.js. Spee.ch also runs `lbrynet` on its server, and it uses the `lbrynet` API to make requests -- such as `publish`, `create_channel`, and `get` -- on the `LBRY` network. - + Spee.ch also runs a sync tool, which decodes blocks from the `LBRY` blockchain as they are mined, and stores the information in MySQL. It stores all claims in the `Claims` table, and all channel claims in the `Certificates` table. * server * [MySQL](https://www.mysql.com/) - * [express](https://www.npmjs.com/package/express) + * [express](https://www.npmjs.com/package/express) * [node](https://nodejs.org/) * [lbry](https://github.com/lbryio/lbry) * [FFmpeg](https://www.ffmpeg.org/) @@ -136,12 +136,12 @@ Spee.ch also runs a sync tool, which decodes blocks from the `LBRY` blockchain a * sagas * scss * handlebars - - + + ### Architecture * `cli/` contains the code for the CLI tool. Running the tool will create `.json` config files and place them in the `config/` folder * `configure.js` is the entry point for the CLI tool - * `cli/defaults/` holds default config files + * `cli/defaults/` holds default config files * `cli/questions/` holds the questions that the CLI tool asks to build the config files * `client/` contains all of the client code @@ -153,23 +153,23 @@ Spee.ch also runs a sync tool, which decodes blocks from the `LBRY` blockchain a * The React components are broken up into `containers/` (components that pull props directly from the Redux store), `components/` ('dumb' components), and `pages/` * spee.ch also uses sagas which are in the `sagas/` folders and `channels/` * `client/scss/` contains the CSS for the project - * - + * + * `client_custom` is a folder which can be used to override the default components in `client/` * The folder structure mimics that of the `client/` folder - * to customize spee.ch, place your own components and scss in the `client_custom/src/` and `client_custom/scss` folders. - + * to customize spee.ch, place your own components and scss in the `client_custom/src/` and `client_custom/scss` folders. + * `server/` contains all of the server code * `index.js` is the entry point for the server. It creates the [express app](https://expressjs.com/), requires the routes, syncs the database, and starts the server listening on the `PORT` designated in the config files. * `server/routes/` contains all of the routes for the express app * `server/controllers/` contains all of the controllers for all of the routes * `server/models/` contains all of the models which the app uses to interact with the `MySQL` database. * Spee.ch uses the [sequelize](http://docs.sequelizejs.com/) ORM for communicating with the database. - + * `tests/` holds the end-to-end tests for this project * Spee.ch uses `mocha` with the `chai` assertion library * unit tests are located inside the project in-line with the files being tested and are designated with a `xxxx.test.js` file name - + ### Tests * This package uses `mocha` with `chai` for testing. * Before running tests, create a `testingConfig.js` file in `devConfig/` by copying `testingConfig.example.js` @@ -195,7 +195,7 @@ Spee.ch has a few types of URL formats that return different assets from the LBR * retrieve a specific claim within a specific `LBRY` channel * https://spee.ch/`@channel`:`channel_id`/`claim` * https://spee.ch/`@channel`:`channel_id`/`claim`.`ext` (serve) - + ### Bugs If you find a bug or experience a problem, please report your issue here on GitHub and find us in the lbry discord! @@ -203,7 +203,7 @@ If you find a bug or experience a problem, please report your issue here on GitH #### level 1 Issues that anyone with basic web development can handle; little-to-no experience with the spee.ch codebase is required. -#### level 2 +#### level 2 Familiarity with web apps is required, but little-to-no familiarity with the lbry daemon is necessary #### level 3 diff --git a/customize.md b/customize.md index 7698372a..3291f830 100644 --- a/customize.md +++ b/customize.md @@ -1,15 +1,15 @@ # Configure your own spee.ch -_note:this guide assumes you have done the []quickstart](https://github.com/lbryio/spee.ch/blob/readme-update/README.md) or [fullstart](https://github.com/lbryio/spee.ch/blob/readme-update/fullstart.md) guide and have a working spee.ch server_ +_note: this guide assumes you have done the []quickstart](https://github.com/lbryio/spee.ch/blob/readme-update/README.md) or [fullstart](https://github.com/lbryio/spee.ch/blob/readme-update/fullstart.md) guide and have a working spee.ch server_ ## Custom Components -The components used by spee.ch are taken from the `client/` folder, but you can override those components by defining your own in the `client_custom/` folder. - +The components used by spee.ch are taken from the `client/` folder, but you can override those components by defining your own in the `client_custom/` folder. + ### Add a new custom Logo component. To create your own custom component to override the defaults, create a folder and an `index.jsx` file for the component in the `client_custom/src/components/` folder. -``` +``` $ cd client_custom/src/components/ $ mkdir Logo $ cd Logo