Giter VIP home page Giter VIP logo

audio-twitter's Introduction

Audio Twitter

Twitter clone made with React, Apollo, MongoDB, Material-UI, Wavesurfer

This is fullstack clone of Twitter with audio instead text messages. It is made for educational purposes only and it is not affiliated with Twitter in any way.

Features

  • General functionalities

    • Record voice, preview oscilloscope, redo recording, preview recording, cancel recording, preview recorded waveform
    • Store audio files to server
    • Play/pause/stop audio messages with waveform preview
    • Autoplay existing messages, autoplay incoming messages
    • Limit autoplay duration to 5, 10, 15 or 20 seconds
    • Timeline feed of messages of the following users
    • Notifications feed, non-seen notifications count
    • Profile page with user's messages feed, following and followers lists
    • Social network functionalities: follow/unfollow users, like/unlike messages, repost/unrepost messages
    • Local state management with Apollo cache, without Redux
    • Edit avatar, cover, name and bio
  • Authentication

    • JWT auth on http and websocket links
    • Sign up with email/password, sign in
    • User/admin role
    • Protected routes with HOCs
  • Design

    • Material-UI responsive design
    • Choose between 4 different green/orange light/dark themes
    • Persist theme in local storage
    • Tabs navigation
    • Popover with user card
  • GraphQL

    • Queries User: users, user, me, whoToFollow, friends
    • Queries Message: messages, message
    • Queries Notification: notifications, notSeenNotificationsCount
    • Mutations User: signUp, signIn, updateUser, deleteUser, followUser, unfollowUser
    • Mutations Message: createMessage, deleteMessage, likeMessage, unlikeMessage, repostMessage, unrepostMessage
    • Subscriptions: messageCreated, notificationCreated, notSeenUpdated
    • Relay cursor paginations: Messages, Notifications
    • Loaders: File, User
    • Client Queries: autoplay, theme
    • Client Mutations: updateAutoplay, setTheme
  • Database

    • Mongoose Models: User, Message, File, Notification
    • Seed database with Faker

Screenshots

Screenshot1

Screenshot2

Screenshot3

Screenshot4

Screenshot5

Screenshot6

Screenshot7

Screenshot8

Screenshot9

Screenshot10

Screenshot11

Libraries used

Client:

  • React 16.12 with functional components and Hooks
  • Material-UI 4.8
  • Apollo Client 2.6, Apollo Upload Client
  • React Mic, Wavesurfer.js 3.3

Server:

  • Apollo Server 2.9, Apollo Server Express
  • Mongoose 5.8
  • Faker, Dotenv, Babel

Installation and running

  • git clone [email protected]:nemanjam/audio-twitter.git
  • cd audio-twitter/client
  • cd audio-twitter/server
  • npm install
  • rename .env.example to .env and set database url and JWT secret
  • npm start
  • visit http://localhost:3000 for client and http://localhost:8000 for server

References

Licence

MIT

audio-twitter's People

Contributors

dependabot[bot] avatar nemanjam avatar

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.