{"id":20498228,"url":"https://github.com/fabiornobrega/ecommerce-elixir-phoenix-example","last_synced_at":"2025-07-09T07:34:55.791Z","repository":{"id":158845304,"uuid":"550300469","full_name":"FabioRNobrega/ecommerce-elixir-phoenix-example","owner":"FabioRNobrega","description":"This small project is a simple example of a e-commerce build with elixir using a phoenix framework","archived":false,"fork":false,"pushed_at":"2023-02-18T15:05:03.000Z","size":162,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-16T06:40:51.936Z","etag":null,"topics":["elixir","elixir-phoenix"],"latest_commit_sha":null,"homepage":"","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FabioRNobrega.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-12T14:26:00.000Z","updated_at":"2024-01-11T16:11:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"a120ad59-f346-4348-8ade-ba477a626418","html_url":"https://github.com/FabioRNobrega/ecommerce-elixir-phoenix-example","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FabioRNobrega%2Fecommerce-elixir-phoenix-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FabioRNobrega%2Fecommerce-elixir-phoenix-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FabioRNobrega%2Fecommerce-elixir-phoenix-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FabioRNobrega%2Fecommerce-elixir-phoenix-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FabioRNobrega","download_url":"https://codeload.github.com/FabioRNobrega/ecommerce-elixir-phoenix-example/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242087919,"owners_count":20069722,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["elixir","elixir-phoenix"],"created_at":"2024-11-15T18:13:30.200Z","updated_at":"2025-03-05T18:59:22.220Z","avatar_url":"https://github.com/FabioRNobrega.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# E-Commerce Example | Farno\n\nThis is a simple e-commerce application with phoenix and elixir, this project was made following the book  [Phoenix in Action](http://phoenixinaction.com) by [Geoffrey Lessel](https://twitter.com/geolessel) on Manning. I made some improvements such as layout, but the core knowledge is still there.\n\n\u003e Support Lessel buy his book at [Phoenix in Action](http://phoenixinaction.com)\n\nI use:\n\n- Erlang/OTP 24\n- IEx 1.13.4 (compiled with Erlang/OTP 22)\n- Phoenix v1.6\n- Postgres (PostgreSQL) 9.6.21\n\nTable of contents\n=================\n\n- [Install](#install)\n- [Usage](#usage)\n- [Tests](#tests)\n- [Git Guideline](#git-guideline)\n- [Branches Guide](#branches-guide)\n\n## Install\n\nFor run this application you need to have erlang and Elixir installed. You can follow the [ElixirSchool](https://elixirschool.com/en/lessons/basics/basics#installing-elixir-1) tutorial to help you with that.  \n\n## Usage\n\nClone this repo and cd into and install dependencies with\n\n```bash\nmix deps.get\n```\n\n```bash\nmix ecto.migrate\n```\n\nStart this umbrella app going inside the `umbrella_auction/apps/auction` and run:\n\n```bash\nmix -S iex\n```\n\nand to run the Phoenix app go to `umbrella_auction/apps/auction_web` and run:\n\n`mix phx.server` or go inside IEx with `iex -S mix phx.server`\n\nNow you can visit [`localhost:4000`](http://localhost:4000) from your browser.\n\n## Tests\n\nThe tests are made using [ExUnit](https://hexdocs.pm/ex_unit/main/ExUnit.html) and can be found on the test folder. To run use\n\n```bash\nmix test\n```\n\n## Git Guideline\n\nCreate your branches and commits using the English language and following this guideline.\n\n#### Branches\n\nThe branches in this repo fallow the ordet of chapters from [Phoenix in Action](http://phoenixinaction.com) book. That way is compose by\n\n`BOOK_PART/chapter-number`\n\nex: `PART2/chapter-004`\n\nThat way you can fallow step by step all de development of this application using the book as reference.\n\n#### Commits prefix\n\n- Chore: `chore(context): message`\n- Feat: `feat(context): message`\n- Fix: `fix(context): message`\n- Refactor: `refactor(context): message`\n- Tests: `tests(context): message`\n- Docs: `docs(context): message`\n\n## Branches Guide\n\n#### **Index**\n- [Chapter 04](#chapter-04)\n- [Chapter 05](#chapter-05)\n- [Chapter 06](#chapter-06)\n- [Chapter 07](#chapter-07)\n- [Chapter 08](#chapter-08)\n- [Chapter 09](#chapter-09)\n- [Chapter 10](#chapter-10)\n- [Chapter 11](#chapter-11)\n- [Chapter 12](#chapter-12)\n- [Chapter 13](#chapter-13)\n- [Chapter 14](#chapter-14)\n- [Extras](#extras)\n\n\n---\n\n### Chapter 04\n\n\u003e Branch **PART2/chapter-004**\n\nYour auction application in chapter 4 consisted of a fake repo, a public interface layer\nto  access the  data in  the  repo,  and  an  Item  struct  that defined  the  data  structure of\nyour auction items. All that code—three modules—existed in a single file. Once you\nstart  adding  more  functionality,  that  kind  of  project  structure  will  become  unmaintainable.\n\n---\n\n### Chapter 05\n\n\u003e Branch **PART2/chapter-005**\n\nIn this chapter we transform you single file auction application in one umbrella application with one app inside.\nThen you use multiple files to organize or modules. And talk about packages and add Ecto and Postgres to handle with real data.\n\n---\n\n### Chapter 06\n\n\u003e Branch  **PART2/chapter-006**\n\nIn this chapter we create a Phoenix application inside an existing umbrella app, and we use the old Auction app as data to our template, and now we are able to render the HTML in a local view [localhost:4000](http://localhost:4000)\n\n---\n\n### Chapter 07\n\n\u003e Branch **PART2/chapter-007**\n\nIn this chapter we create a a connection between the application with PostgreSQL using [Ecto](https://hexdocs.pm/ecto/Ecto.html). With that set we create now a real database for the items and and a simple Create, Read and Delete system.\n\n---\n\n###  Chapter 08\n\n\u003e Branch **PART2/chapter-008**\n\nIn this chapter we create a update and learning a little about ecto changeset and validations functions.\n\n---\n\n### Chapter 09\n\n\u003e Branch**PART2/chapter-009**\n\nIn this chapter we create RESTfull resource contains actions for index, show, new, create, edit update. With HTML Templates and Controllers. \n\n---\n\n### Chapter 10\n\n\u003e Branch **PART2/chapter-010**\n\nIn this chapter, we create a simple session control with [pbkdf2_elixir](https://hex.pm/packages/pbkdf2_elixir). Added the possibility of creating a user and then\nenable the same to log in and log out.\n\n---\n\n### Chapter 11\n\n\u003e Branch **PART2/chapter-011**\n\nIn this chapter, we create relations between user, bits and items to be able to handle bids on site per user.\n\n\n---\n### Chapter 12\n\n\u003e Branch **PART3/chapter-012**\n\nYou probably thinking why this branch doesn't exist, but here is true, this chapter covers phoenix channels but now I day is better you use [Phoenix LiveView](https://hexdocs.pm/phoenix_live_view/Phoenix.LiveView.html) to handle real-time communication to users.\n\n---\n\n### Chapter 13\n\n\u003e Branch **PART3/chapter-013**\n\nIn this chapter, we create a API for external / public usage to list items with bids and all the items on the data base.\n\n---\n\n\n### Chapter 14\n\n\u003e Branch **PART3/chapter-014**\n\nIn this chapter, covered ExUnit tests and Ex_doc with `@docs` and `@moduledoc`\n\n---\n\n### Extras\n\n\u003e Branch **PART4/extras**\n\nThis part is my own addition to this study. So I have added a new layout, test, documentation, and a docker to run more easily.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffabiornobrega%2Fecommerce-elixir-phoenix-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffabiornobrega%2Fecommerce-elixir-phoenix-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffabiornobrega%2Fecommerce-elixir-phoenix-example/lists"}