Coder Social home page Coder Social logo

marknorrapscm / serverless-media-portal Goto Github PK

View Code? Open in Web Editor NEW
107.0 1.0 14.0 6.62 MB

Ready-to-deploy webapp for sharing home videos: a React frontend with a AWS Lambda backend using FFmpeg to process videos. Created using Serverless Framework.

License: MIT License

JavaScript 94.63% HTML 1.75% CSS 3.62%
serverless ffmpeg lambda video-streaming thumbnail-generator reactjs serverless-framework serverless-framework-template

serverless-media-portal's People

Contributors

marknorrapscm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

serverless-media-portal's Issues

Refactor the AuthWrapper.js component to use custom hooks

The whole frontend needs refactoring, but a good place to start is by extracting the functional logic into custom hooks. The throwaway nature of the initial project meant that I didn't do this from the beginning as I should. A good component to start that on is frontend/src/components/AuthWrapper.js.

Currently, the functionality for logging in is in the component itself. We want the component to contain only UI concerns, so we want a custom hook that looks like this:

export function AuthWrapper(props) {
    const [isLoading, isAuthorized, hasFailedLoginAttempts] = useLogin();

    return (
        <div>
            ...  
        </div>
    );
}

...where useLogin() is the custom hook.

Add lazy-loading style grey boxes whilst thumbnails are generating

The upload form is basic with a primitive user experience. This is one of a series of issues which list possible improvements:

  • Currently, once a video has been uploaded the thumbnail generation process is automatically triggered in AWS
    • The frontend knows what the expected URL of each thumbnail and every few seconds it makes a HEAD request to see if they've been created yet
      • This process is a bit messy and could be improved
    • When thumbnails are detected, they abruptly appear on the webpage
    • Adding grey placeholder boxes, each with a spinner inside, would signal to the user that work is being done

For example, what YouTube have as video links are being loaded:

image


The existing upload form:

image

Clear the upload form once an upload is complete

The upload form is basic with a primitive user experience. This is one of a series of issues which list possible improvements:

  • Automatically clear the form once an upload is complete
    • Currently the user has to click a "Clear form" button

image

Add drag-and-drop for uploading a video

The upload form is basic with a primitive user experience. This is one of a series of issues which list possible improvements:

  • Users currently have to click the "Browse" button and select a file from the file system
    • The "Browse" button should remain, but drag-and-dropping a video file onto the page should be implemented
    • Dragging a video onto the page should initiate the upload process just like selecting it via the "Browse" button

image

Thumbnails in the "related videos" pane are too width on certain resolutions

Opening this issue to make a note of it.

Since v1.1 thumbnails are now generated from videos of any aspect ratio (previously they were tailored for videos shot in portrait mode). Although this works, it appears that the CSS of the related videos pane needs to be adjusted to correctly display these wider thumbnails. Case in point, cropped from a landscape tablet:

image

The image overlays the text. Setting a max-width will probably solve it.

Implement a two-stage upload process

The upload form is basic with a primitive user experience. This is one of a series of issues which list possible improvements:

  • Implement a two stage upload process of:
    • Having nothing but the "Browse" button present
    • When the user selects a video and the upload begins, only then is the rest of the form displayed
    • When the form submits and the upload is complete, a success message is displayed along with a link to the video

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.