All Projects → KristianWEB → Fakebooker Frontend

KristianWEB / Fakebooker Frontend

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Fakebooker Frontend

Create Social Network
An educational project, demonstrating how to build a large scalable project with Javascript.
Stars: ✭ 853 (+587.9%)
Mutual labels:  graphql, apollo-client, social-network
Apollo Link Webworker
Apollo link that lets you use graphql client-side only, with a webworker as a "server" supporting normal queries and subscriptions
Stars: ✭ 88 (-29.03%)
Mutual labels:  graphql, apollo-client
Realm Graphql
GraphQL client for Realm Object Server
Stars: ✭ 79 (-36.29%)
Mutual labels:  graphql, apollo-client
Booben
Web app constructor based on React, with GraphQL bindings
Stars: ✭ 96 (-22.58%)
Mutual labels:  graphql, styled-components
Apollo Upload Client
A terminating Apollo Link for Apollo Client that allows FileList, File, Blob or ReactNativeFile instances within query or mutation variables and sends GraphQL multipart requests.
Stars: ✭ 1,176 (+848.39%)
Mutual labels:  graphql, apollo-client
React Hipstaplate
A ReactJS full-stack boilerplate based on typescript with ssr, custom apollo-server and huge stack of modern utilities which will help you to start your own project
Stars: ✭ 74 (-40.32%)
Mutual labels:  graphql, styled-components
Aqls Client
An intelligent full-stack GraphQL subscription and analytics module. Client-side hooks, automatic query parsing, and analytic generation.
Stars: ✭ 95 (-23.39%)
Mutual labels:  graphql, apollo-client
Github Graphql React
A Github client built with React / GraphQL 💻👩‍💻💽 👨‍💻
Stars: ✭ 60 (-51.61%)
Mutual labels:  graphql, apollo-client
Spectrum
Simple, powerful online communities.
Stars: ✭ 10,315 (+8218.55%)
Mutual labels:  graphql, styled-components
Angular1 Apollo
AngularJS integration for the Apollo Client
Stars: ✭ 108 (-12.9%)
Mutual labels:  graphql, apollo-client
Apollo Link
🔗 Interface for fetching and modifying control flow of GraphQL requests
Stars: ✭ 1,434 (+1056.45%)
Mutual labels:  graphql, apollo-client
Apollo Cache Invalidation
Experimental cache invalidation tools for Apollo.
Stars: ✭ 66 (-46.77%)
Mutual labels:  graphql, apollo-client
Artemis Dev Tool
An Apollo GraphQL Query Schema Testing Tool
Stars: ✭ 66 (-46.77%)
Mutual labels:  graphql, apollo-client
Apollo Client Devtools
Apollo Client browser developer tools.
Stars: ✭ 1,210 (+875.81%)
Mutual labels:  graphql, apollo-client
Cynthesize Frontend
Frontend written in Angular 7 and deployed GraphQL for Cynthesize. Development build: https://cynthesize-develop.netlify.com
Stars: ✭ 65 (-47.58%)
Mutual labels:  graphql, apollo-client
Meteor Apollo Starter Kit
Meteor, Apollo, React, PWA, Styled-Components boilerplate
Stars: ✭ 91 (-26.61%)
Mutual labels:  graphql, styled-components
Graphql Codegen Hasura
code-generator plugins for hasura/apollo-gql/typescript development
Stars: ✭ 113 (-8.87%)
Mutual labels:  graphql, apollo-client
Graphql Apollo Next.js
A server-rendering GraphQL client with Apollo Client and Next.js
Stars: ✭ 59 (-52.42%)
Mutual labels:  graphql, apollo-client
Guide To Graphql
A Frontend Developer's Guide to GraphQL (Fluent Conf 2018)
Stars: ✭ 59 (-52.42%)
Mutual labels:  graphql, apollo-client
Guide
📖 The GraphQL Guide website
Stars: ✭ 104 (-16.13%)
Mutual labels:  graphql, apollo-client

Fakebooker 1.0.0 Fakebooker-Frontend Fakebooker-Backend

Fakebooker is an extensive open-source project that is essentially a clone of the real Facebook. Now Fakebooker is not one of those little pet projects that just prove the concept, the Fakebooker UI is almost identical to the real Facebook Beta which makes it even more unique. The idea of this project is to try to implement Facebook's design patterns using the MERN stack. It is made for educational purposes only and nothing else!

Screenshots

Newsfeed: newsfeed

ProfilePage: profilepage

Technologies

Frontend

  • Javascript library for building User Interfaces: React
  • Client for handling GraphQL queries + caching + local state management: ApolloClient
  • CSS-in-JS library for handling Fakebooker's styles: styled-components
  • Performant, flexible and extensible forms with easy-to-use validation: react-hook-form
  • Notifications are built on top of: react-toastify
  • Popups are made using: reactjs-popup
  • Handling time properly: momentjs
  • Skeletons for loading components: react-content-loader
  • Loading spinners for smaller actions: react-loader-spinner

Backend link

  • The NoSQL database for modern applications: mongodb
  • Elegant MongoDB object modeling for node.js: mongoose
  • GraphQLServer: apollo-server
  • Authentication built on top of tokens: jwt
  • Image Upload: cloudinary
  • Easily faking data: faker
  • Testing framework: jest
  • Integration testing package: apollo-server-testing

Most of the backend code is test covered except some resolvers and the subscription ones

Features ( 1.0.0 )

I've tried my best to clone the real Facebook Beta even with the same colors provided in theme.js

Login / Register

  • You can login or register easily, and if something goes wrong there are cool validations to help you get on ( every input is validated on the app )

Post

  • You can create a post in which you can also use markdown and upload an image if you want to just like Facebook
  • You can like or comment on a post and if the post is not yours the person who created it will receive an instant realtime notification about your particular action ( apollo subscriptions )
  • You can delete a post ( if it's yours all comments and likes associated to it will get deleted )
  • You can unlike or delete your comment ( the notifications related to your like or comment will get deleted )
  • You can delete anyone's comment as long as you are the post creator
  • On every post or comment if you hover on the post's / comment's creator you can go to his profile page

ProfileHeader

  • You can make friends: send friend requests to other users and they can respond to your request ( a friend notification is fired through subscriptions once again )
  • You can open up a chat with that particular user
  • You can change your avatarImage ( cloudinary )
  • You can change your coverImage ( cloudinary )
  • You can view your Timeline, About, Friends and Photos pages ( refer to ProfilePage )

Navbar

  • You can search for users with filter on.
  • You can chat with people ( again through subscriptions ) and the ProfilePage corresponds with that user's data
  • You can see all your conversations ( chat button on Navbar )
  • You can see all your notifications ( notification button on Navbar )
  • When you click on a notification it redirects you to the SinglePostPage if it's a post type or user if it's a friend request type

Loading

  • Loading states and skeletons for every single component/page on the app

SinglePostPage

  • Navbar
  • Consists of the single post that the notification is pointing to

Newsfeed

  • The newsfeed contains all posts from the app, which again you can interact with them
  • Contacts: Your friends ( if you click on a friend, a chat tab is going to be opened for a quick chat with him )
  • Navbar

ProfilePage

  • Navbar
  • ProfileHeader

You've read most of the features, go to fakebooker.com and then check in real time the features that I'm explaining

Timeline Page

  • Consists of all your information: About, Photos, Friends and your posts

About Page

  • Consists of all your personal information such as:
    • Workplace
    • School
    • Homeplace
    • Birthday
    • Gender

Friends Page

  • Consists of all your friends ( each friend has a button to remove him from your friends' list )

Photos Page

  • Consists of all your posts that contain images

Setup a local environment

  • Copy the .env.example file into .env.local and fill in the actual values ( you need to have a cloudinary account )
npm install && npm start

Contribute

Contribution is accepted and I encourage you to do so as long as you follow my Github worklfow

Issues / Problems

Check out Projects tab in both frontend and backend repos and if you don't find that issue that you are having, better create one and I will make sure everything is alright!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].