DEMO ACCOUNT
Login to view a pre-populated account with the below credentials:
- Email: [email protected]
- (accounts for [email protected] exist)
- Password: Password12!
Log in
Sign upForgot your password?
Welcome to Fakebook
A facebook clone app, built by James Kemp, to demonstrate use of the following libraries, technologies &
techniques:
View the code
- 🖇️ Complex forms; nesting, custom actions, hotwire.
- 👫 Advanced associations; many to many, custom validation, callbacks, delegation.
- 🔐 Authentication with Devise; devise controller extension.
- ⚙️ Helpers & POROs:
- Hand built image processing; size, format, purge, via ActiveStorage (direct serve) & Vips.
- Helpers; time formatting in views, devise controller & action helpers, conversation service.
- 🔔 Notifications; hand built message UI Notification service.
- 📥 ActiveJob;
- ProcessImageJob; size and format processing of uploaded images.
- BroadcastMessageJob; building and broadcasting user scoped messages & conversations.
- MessageNotificationJob; managing UI notifications for message read state.
- 🗄️ ActiveStorage; attachments, variants, metadata, direct serve. Great article.
-
ActiveRecord; postgres, seeding, attachments, variants, metadata, direct serve.
- 🔌 ActionCable; managing conversation scoped subcriptions and broadcast DOM updates.
- 📧 ActionMailer; user_mailer sends welcome_email on user sign ups.
- Frames & streams; used in User, Post, Comment, Conversation & Message views.
- Turbo 8; using view transitions & turbo morphing.
- To manage image attachments on posts and previewing.
- To subscribe to correct ActionCable channels.
- To toggle comment form presence view on posts.
- To manage scroll position of conversation containers.
-
TESTING
- Use of factories, fixtures, selenium.
- All models, jobs, channels and mailers unit and where relevant integration tested.
- Request and authentication tested on all routes.
- System tests for all key features and user actions tested.
-
STYLING
- Most styling done with TailwindCSS & DaisyUI component library.
-
DEVOPS
- Containerised microservice architecture on a manually configured AWS EC2 Ubuntu instance.
- Docker built & composed 5 services (ECR & docker-hub); web, sidekiq, nginx, postgres, redis.
- Nginx web server, SSL only.
- Bash scripting & systemd automates DNS records and server updates.