No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Downloaded a code of conduct Apr 11, 2018
LICENSE Initial commit Apr 6, 2018
README.md Added some documentation on the way to install the applications Nov 19, 2018

README.md

Strime 📹 🔥

  1. Presentation
    1. History
    2. Team
    3. Milestones
    4. Thanks
  2. Architecture
  3. Installation
    1. Encoding application
    2. API
    3. Website
  4. How to contribute
    1. What can be improved
    2. I found a bug
    3. I've got an idea
  5. FAQ
  6. Credits

Presentation

Strime is video project management service created to help video producers gather feedback from their client. Instead of sending a file via a service like Google Drive, WeTransfer, FromSmash, or Dropbox, and waiting for your client to send you his comments in a fuzzy email, you can upload your video on Strime, share a link with your client, and your client will just have to write down his comments directly on the video.

Team

Franck Haegeli Jean-Philippe Cabaroc Romain Biard
Former war reporter and specialized in animation for more than sixteen years. His experience (sometimes painful) with his clients is the starting point of Strime. Graphic designer for more than 10 years, Jean-Philippe worked in communication agencies before becoming an independent. He strived to make Strime beautiful and usable. Fierce and sharp developer, Romain is also a fan of running. He was responsible of making Strime functional and he sweated to make the tool as powerful as possible.
@larbrenoir @cabaroc @rombiard
L'arbre noir @cabaroc Bobby Digital
Bobby Photography

History

Strime was created in 2015 by 3 french people, in Saint-Etienne. The idea came from Franck, who is a video producer and was looking for such a tool to work with his clients. After some research, he realized that a couple of tools existed but all of them were only accessible in english. Nonetheless, the french market is a very language-sensitive market and very little of his client would have been able to use a platform only accessible in english.

Moreover, some of them had a pretty complex interface, designed by video experts for video experts.

He then decided to gather a small team around him to create something that would first be dedicated to the french market, with the goal to be dead simple in order to be widely adopted by the client, because if the client doesn't adopt it, it's pointless.

They won a grant delivered by their region in France and the professional organization Numelink for this project, they also integrated Startup Chile in february 2017.

In april 2018 they took the decision to take down the company for economical reasons, and to open source the code of the platform, in order for the project to keep living and to offer a solution for those who might be interested in having their own Strime installation. The website has been shut down on 09/10/2018 and the project has been open sourced the same day.

Milestones

  • February 2015: Idea
  • April 2015: Won the Numelink (now Digital League) grant
  • July 2015: Incorporation
  • January 2016: Launch of the beta
  • June 2016: Left the beta and launch of the freemium model
  • January 2017: Dropping the freemium model
  • February 2017: Integration of the acceleration program Startup Chile
  • March 2017: Launch of the english version
  • April 2017: Launch of the spanish version
  • June 2017: 2nd to the Lab4+ pitch contest in the creative industry category
  • April 2018: Decision to take down the service
  • July 2018: Open sourcing the code
  • September 2018: Closing the website

Thanks

Some people that helped to the development of Strime have to be thanked:

Architecture

The main principles

Strime is designed in 3 different applications:

We decoupled it into these 3 apps to be able to better handle the resources and split it into different servers to make it scale.

All of them are developed under Symfony 2.8, which is a PHP framework.

Our production architecture

When Strime was running on production, it was first running on 3 different servers: 1 for the website, 1 for the API, and 1 for the encoding API.

This evolved over time, when we began working with Yannis to include load balancing, more security with a private network, etc...

Simplifying the architecture

What you highly advice is you separate the encoding API from the rest on the infrastructure. Indeed, the encoding process, is very demanding in terms of resources, and when you have it running on your server, it occurs that the rest of the applications are inaccessible because of the memory consumed by the encoding API.

2 servers is then the minimal configuration for a stable and efficient infrastructure.

On our side, we used Ubuntu 16.04, PHP7.0, MySQL and Nginx to make Strime run on our servers. We also used Let's Encrypt for the SSL certificates, PHP-FFMPEG and therefore FFMPEG for the video conversion.

A word on FFMPEG

In order to work properly, FFMPEG HAS TO be compiled and not installed through a package installer like APT-GET. This is particularly important to include the support of x265 and other specific codecs.

Additional services

Strime is also connected to 3rd party services. You will want to create a free Sendgrid account for handling the emails, a free Mailchimp account to store the list of subscribers to your mailing list, create a Slack channel in which we will notify you when some critical actions occurs on your application.

But more importantly, you will need AWS S3 buckets to store your content. You'll need one for the videos, one for the comments (the generated thumbnails), one for the audios and one for the images.

If you want to allow your users to login with Google, you will need to create an API access in the console, and if you want to use Facebook, an app ID.

On our end, we also used Hubspot during some time for marketing purposes, and eventually dropped it, but it can still be configured.

Installation

Ideally, for each application, you would create a git hook or something similar to automate deployment.

For each application, you will have to clone the repository, and install dependencies by running composer install. You will also want to install databases: php app/console doctrine:schema:update --force and to install the assets: php app/console assets:install –symlink.

We recommend that you update your PHP setup to increase the allowed upload limit:

upload_max_filesize = 2G
post_max_size = 2G

You will need NPM and uglify set up on your servers:

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo apt-get install npm
sudo npm install -g uglify-js
sudo mv /usr/local/bin/uglifyjs /usr/bin/uglifyjs

Encoding application

API

Website

How to contribute

You can contribute to each application individually. The best way to proceed is to create pull requests.

Since these applications are no longer maintained by the founding team, you can also fork them, and make them evolve as you see fit, for your own needs, but contributing to a global, open source project, is always nice.

What can be improved

  • writing unit tests
  • upgrade each app to a newer version of Symfony

I found a bug

If you found a bug and don't know how to resolve it, please open an issue in the corresponding repo.

If you found a bug and know how to resolve it, please submit a PR in the corresponding repo.

In both cases, try to be as explicit about your environment, and how to reproduce the bug.

I've got an idea

Excellent! Feel free to implement it and submit PR(s) in the corresponding repo(s), or to create an issue describing your feature idea.

Best ideas are those that do not tackle very specific problems, but those that can solve everybody to have a better experience on Strime.

FAQ

Can I remove Strime's brand and use mine instead?

Yes you can! Strime is no open sourced and can be used as you see fit.

We'd be glad if you could mention on your website where it comes from though.

Credits

Romain Biard

Franck Haegeli

Jean-Philippe Cabaroc