E-commerce application, a clone of NetFlix, with payment processing, account management, and administration capabilities.
The project's home page lives on Heroku - here. If you want to sign up, use following details:
- Credit card number '4242 4242 4242 4242',
- cvc '123',
- Any non-expired date
The goal of this project is to go beyond a beginner Rails project and learn what it takes to launch real, robust and production quality applications. In this project, I focused on the engineering processes, workflows and best practices of experienced developers. From start to end, I used Test Driven Development (TDD) to build production-level robustness and manage complexity in a growing codebase.
- Ideation, wireframes, mockups, design and development
- Build from the application core to the peripherals
- Add features incrementally and deploy continuously
- Feature development with Git branching
- Github flow
- Code reviews
- Unit, functional, and integration tests
- Development and test databases
- Shoulda matchers
- TDD and red / green / refactor
- BDD & RSpec
- Single assertion principle
- Controller tests
- Macros
- Shared examples
- Capybara
- Test doubles and method stubs
- Feature specs with Javascript
- Testing email sending
- Isolated API tests
- Message expectations
- Mocking
- Stubs and mocks
- Implement Continuous Integration with TravisCI
- Seeding data
- Search
- Sending emails
- Use random tokens
- Email Service Providers
- Custom form builders
- Complex forms
- Self referential associations
- Concerns
- Background jobs (Sidekiq / Redis)
- Uploading files to Amazon S3
- Scheduled jobs
- Skinny controller, fat model
- Structural refactors
- Separating actors
- Securing access
- Wrapping APIs
- Responding to webhooks
- Collect credit card payments
- Checkout
- Payment forms
- Recurring billing
- Handle callback events
- Beyond MVC
- Secure sensitive data
- Deploy with Procfile and Foreman
- Staging and production environments
- Custom deployment scripts
- Continuous Integration
- Continuous Delivery
- Production error monitoring
- Production service integration
- Build workflows that involve multiple sub-systems
- Complex registration workflow
- Invitation workflow
- User life cycle management
- Social networking
- Taking and charging credit cards
- Recurring billing
- Privileges and access control
- Account and billing management