What are we going to build
- Rough Overview
- Database Structure modeled using Typescript Interfaces
Setting up Your Phoenix Application
- Setting up Phoenix with PostgreSQL
Setting up a PostgreSQL backed HTTP server
- Generate tables using Ecto
- Ecto Schema
- Routing in Phoenix
- Listing Routes in Phoenix
- Mapping Request to Phoenix Controllers
Generate Vue Typescript Application
- Getting started with VueJS and Typescript
- Creating the Project
- Starting Vue Development Server
- Routing with Vue-router
- Vue Components
- Vue Component Props
- State management in Vue
Add Multi-language support
- Setting up multi-language support
Building our Homepage view component
- Visual Design of Our App
- Our first Vue component
Adding Vuex to Vue
- Building Product Related Components
- Two-binding in Vue with v-model
- State Management with Vuex
- HTTP Requests with Axios
- HTTP Request Handling with Phoenix
- Ecto Schemas
- Converting Ecto Schemas to Typescript Interfaces
- Adding CORS to Phoenix Server
- Listing all Products
- Adding Components to Vue-Router
Writing tests with Jest
- Testing Our Components
- Adding Notifications
Build Customer Management Features
- Modeling Customer in Typescript
- Implementing Customer
- Talking with Phoenix Backend
- Building the Customer View
- Testing Customer Functionity using Jest
Refactoring Our Frontend
- Introducing a Base Service
- Refactoring Services to use Base Service
Refactoring and adding tests for Backend
Adding Order Management
- Renaming Fields in Ecto Schema
- Modeling JSON representation for Order
- Fixing Failing Tests
- Building Order Views
- Implementing Order Service
Adding new features to Order Management
- Implementing Autocomplete
- Caching Results using GenServer
- Add Cache to Application
- Visualizing GenServer with Observer
- Building Autocomplete UI Vue Component
- Integrating Autocomplete with Orders
- Adding Search to Base Service
Fixing failing Elixir tests
Deploying our application using Docker
- Initialize a new release
- Compiling and build release
- Starting the server
- Deploying Static files with Nginx and docker
- Docker file for Phoenix Server
- Running Postgres migrations from Docker
- Dockerfile for VueJS client
- Start docker compose with Nginx and Phoenix app
Making our UI user friendly
- Building a HomePage
- Embedding Views with Vue Slots
