- Docker
- Node + NPM
- Elixir
- Make sure docker are running:
docker-machine start && eval "$(docker-machine env default)"
- Create db config:
cp docker/config/db.example.env docker/config/db.env
- Start db:
docker-compose up -d
- Switch to frontend dir:
cd ../frontend
- Install node packages:
yarn
- Open pheonix app:
cd delicious_elixir
- Install dependencies:
mix deps.get
- Create and migrate your database:
mix ecto.create && mix ecto.migrate
- Create superuser:
mix delicious_elixir.create_super_user my_username [email protected] my_passwor
- Start Phoenix endpoint:
mix phoenix.server
- Open the application: http://localhost:4000
- Done!
The cli will scaffold a new component with scss, js, test and automatically add it to index.js and index.scss.
Create a component will both scss and classbase
npm run new ComponentName
Create a component without scss file
npm run new ComponentName no-scss
Create a component without classbase (it will be a functional component), and no scss
npm run new ComponentName no-scss no-class
no-scss and no-class is both optional.
index.scss and index.js will be automatically updated when adding a component through the cli.
You can also override the html if you want/need to for your component by adding a html file in the components folder, or have it created by adding this to the cli:
npm run new ComponentName add-html
- Start server:
iex -S mix phoenix.server
- Import:
require IEx
- Trigger debugger:
IEx.pry
-
Deploy to heroku
git subtree push --prefix delicious_elixir heroku master
-
Create model
mix phoenix.gen.html Example examples field_name:field_type mix ecto.migrate
-
Create migration
mix ecto.gen.migration <description> resources "/<model_name>", <Model>Controller mix ecto.migrate
-
Create table:
mix ecto.create
-
Create migration:
mix ecto.gen.migration <description>
-
Run migration:
mix ecto.migrate
-
Generate model:
mix phoenix.gen.html Example examples field_name:field_type
-
Update all dependecies:
mix deps.unlock --all && mix deps.get
-
Create link modal
-
Add put support to link api controller
-
Edit link modal
-
Url validation when saving link
-
Update link list with changes happen
-
Delete link from list
-
Auto update list if new links arrive (through socket)
-
Update link list styling
-
Fix bug that happen when toggling home/my links
-
Support for public/private links
-
Implement unfollow list logic
-
Fix 'My links' navigation recursive bug
-
Sign up styling
-
Update so UserProfile gets correct user data
-
Make sure only link owner see private links
-
Fix issue occuring when link-list receives a new list in user-profile
-
Register styling
-
Update packages (Ecto, Phoenix...)
-
Implement ExAdmin
-
Delete button on edit link modular
-
Styling UserProfile header
-
Settings (Change password / profile)
-
Tag support
-
Hide Share/Edit/Delete on items without access
-
Add tag filtering abilities on user
-
Add superadmin flag (or similar) to user model
-
Implement tests on travis
-
Create heroku instance
-
Attempt to load title/description/image from url when pasting link in Add Link dialog
-
Add link creation should transfer user to Profile page
-
Sign out styling
-
Rename project to
Phenix-Delicious
(or something else?) -
Convert app to docker container
-
Add user avatar support
-
Release 1.0.0
-
Bulk editing
- Make it possible to email links to user
- Add read/unread flag
- Add support for collections/categories
- Add slack integration
- Create browser plugin
- Add support for private accounts
- Make it possible to import delicious data dumps
- https://github.com/bigardone/phoenix-trello/
- https://medium.com/@diamondgfx/debugging-phoenix-with-iex-pry-5417256e1d11
- https://blog.drewolson.org/composable-queries-ecto/
- http://elixir-lang.org/getting-started/case-cond-and-if.html
- https://elixirnation.io/references/ecto-query-examples#limit_offset
- Nested Associations & Changeset Errors in Ecto
- Adding Edit and Update Functionality
- Useful Ecto Validators
- Nice reference site for integrating ExAdmin and Guardian
- Demo site showing how to implement many_to_many relations in ExAdmin
- Awesome read about using associations in ecto