Giter Site home page Giter Site logo

abozanona / luca Goto Github PK

View Code? Open in Web Editor NEW
5.0 5.0 1.0 9.62 MB

Luca - Watch movies with friends

Home Page: https://chrome.google.com/webstore/detail/obnoakbedffbolampagecgineggakiii

License: MIT License

JavaScript 9.33% HTML 4.26% TypeScript 70.09% SCSS 16.32%
chrome-extension contributions-welcome edge-extension firefox-addon movies party reactjs share-videos video

luca's People

Contributors

abozanona avatar mahmoud-skafi avatar yousefra avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

yousefra

luca's Issues

Add support for RTL

The popup and injected components in screen should support RTL layouts.

RTL should load automatically based on the user's local.

Add popup UI logic

Every time the user opens the popup, display the popup content based on the status read from the current opened page.

List of possible status received from the content page:

Code What is content status What should show in popup
null/undefined/nothing This is the default status code.
It will return in cases when the
content script is not loaded on
page or the page doesn't support
loading content script.
A message indicating that the
script is not loaded. Please
make sure that the page is valid
and to refresh the page if it is a
valid page.
WAITING_CREATE_ROOM When the content script is loaded
successfully but no video was selected
by user and no room was created
Show two options to either create a
new room or join a room. If the users
creates a new room show him a message
to select a video from page. If the user
Selects a video from page, show him a
screen with the party details and the
ability to share party link.
WAITING_SELECT_VIDEO Socket is opened but the user didn't
select any video
show the user a message asking him
to select a video from page. If the user
Selects a video from page, show him a
screen with the party details and the
ability to share party link.
PARTY_SETUP_COMPLETED Video is selected and socket is
connected to party.
show user a screen with the party details
wiith the ability to share party link.

Send actions in chat

When a user performs an action, show it in the chat

List of actions a user can make

  • Play/pause/seek video
  • Join party
  • Makes a reaction

Re-Add the js for content page

Describe the bug
Add the content script that selects a video, starts stream and displays chat to users. You can find the original code in previous commits.

Add the ability to share party link with other users

Is your feature request related to a problem? Please describe.
Users should have the ability to share a party link with other users that want to join their party.

Describe the solution you'd like

  • The user can generate a link for the current party. The link contains the party id and the URL of the most-top page in the current tab.
  • When a user opens the link, it will show him a page that will either show him that the extension is not installed or to click on a button to join the button.
  • Clicking on the above button will open a new tap and start a party there.

Add donation button

Consider adding a donation button in the design of Luca extension.

@Mahmoud-Skafi to add a donation button/popup to the Figma design where users can support the extension developers.

The donation can be on PayPal, Buy me a coffee or any other service.

Luca extension general fixes

Need to do the following fixes:

  • Allow user to join a party from link.
  • add user ad to navbar.
  • Show party users in popup and chat

Push to talk voice messaging

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Store all streaming websites in DB

We should have a database that has links to all websites that the extension was run on.

We need to store links for the website that's running the video and for all parent pages if the page is displayed within a frame.

Extension doesn't work on Netflix

Describe the bug
Running Luca on Netflix causes the page to crash

To Reproduce
Steps to reproduce the behavior:

  1. Go to any video on Netflix and start a party on two tabs
  2. Perform any action on the vidoe
  3. The page will crash

We should build custom clients for certain/different websites.

Show connectivity status to the party

Show if the current user is still connected to the opened party. We can show a red bar at the top of chat and change the chat button color into red to indicate that the user has disconnected from the party socket.

Automatically try to reconnect disconnected users every 5,10,20,30,60 seconds.

Allow users to leave the party or reset the selected video in the party.

Add support for different languages

Build the code structure to support different languages.

The structure should support adding translations for

  • Content scripts
  • Injected scripts
  • HTML templates
  • Manifest file
  • Popup scripts
  • Popup UI
  • Core code and core classes

Create the following Luca features

Register users: Users in Luca can register using their Google account.
Users can follow other users.
Users can create rooms/join rooms.
Created rooms can be public or private.
Users can view all public Luca rooms from anywhere in the world.

Mute sounds

Add the ability to mute Luca sounds in the settings page.

Sounds include

  • Sending/receiving message sound

Add design to pages in the extension

Refer to #14 to get more details about the pages that should be designed

Need to add design to the following pages in the extension

The not recognize page

image

The select video to proceed page

image

The splash screen

image

Edit user name and avatar page

This can be added in the settings page

Content page UI

image

Add the ability to send voice messages

Users should have the ability to send voice messages to others users in the party. It should be a push-to-talk feature.

When a user pushes a button, it will show him a circular progress bar on the screen indicating that the user is talking now. The user can talk for no more than 10 seconds.

The voice message will be sent to other users in the party and will get played automatically based on users preferences in their settings.

Fix playing issues in Luca

  • Chat should automatically scroll to bottom when it's opened
  • You should not clear chat input when a user sends you a message.

Add dark mode

Need to activate dark mode button in the settings.

Create Front-End Structure

Create Webpack config for production/ development environment.

  • Add Scss-loader
  • Add ts-loader
  • Add HTML-loader

Add tutorial for how to use the extension

Need to add a guide within the extension to show users how to use the Luca for the first time.

It could be a set of notes and a next buttons that shows on the screen.

Add the ability to auto select video when a user joins a party.

When a user creates a party, he have to select the video he wants to play the party on. But when a user wants to join a party, we can automatically select the video for him.

We can do that by reading the xpath for the video in the party creator screen, and select the video automatically in the other users screens.

Do not depend on IDs or classes since some website change them to prevent developers like us from parsing their website. Instead, you should only use elements names.

Need to develop a method that will generate the xPath for any element in page.

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.