Skip to content
This repository has been archived by the owner on Jan 10, 2021. It is now read-only.
/ Delicious-Elixir Public archive

A Delicious clone built in Elixir/Phoenix+React/Redux (Very much work in progress)

Notifications You must be signed in to change notification settings

marteinn/Delicious-Elixir

Repository files navigation

Build Status

Delicious - Elxir

Requirements

  • Docker
  • Node + NPM
  • Elixir

Getting started

  1. Make sure docker are running: docker-machine start && eval "$(docker-machine env default)"
  2. Create db config: cp docker/config/db.example.env docker/config/db.env
  3. Start db: docker-compose up -d
  4. Switch to frontend dir: cd ../frontend
  5. Install node packages: yarn
  6. Open pheonix app: cd delicious_elixir
  7. Install dependencies: mix deps.get
  8. Create and migrate your database: mix ecto.create && mix ecto.migrate
  9. Create superuser: mix delicious_elixir.create_super_user my_username [email protected] my_passwor
  10. Start Phoenix endpoint: mix phoenix.server
  11. Open the application: http://localhost:4000
  12. Done!

Frontend

CLI

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

Phoenix

Debugging

  • Start server: iex -S mix phoenix.server
  • Import: require IEx
  • Trigger debugger: IEx.pry

Heroku

  • Deploy to heroku

    git subtree push --prefix delicious_elixir heroku master

Snippets

  • 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

Roadmap

  • 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

Possible new features

  • 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

References

About

A Delicious clone built in Elixir/Phoenix+React/Redux (Very much work in progress)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published