gothinkster/realworld

๐Ÿ—„๐Ÿ”ง Elixir + Phoenix

BrainMaestro opened this issue ยท 36 comments

Current Status

Todo:

  • ๐Ÿ Fork the starter repo & post the link in this issue
  • ๐ŸŽจ Create logo for repo & update issue status (@EricSimons)
  • ๐Ÿ”จ Implement all of Conduit's functionality per the spec & API
  • ๐Ÿ‘€ Peer review of final codebase by RealWorld admins & community (RFC)
  • ๐ŸŽ‰ Tag v1 release, move repo to main org, and officially list it on the README!

I would like to work on this

Awesome! Wanna fork our starter kit and post the link in this issue so others can watch/fork?

Thanks! I'll do that soon.

@BrainMaestro I would like to help on elixir/phoenix counterpart.

It seems like a really good exercise to make to learn to load associations and stuff...

Lemme know if you want to team-up or somethin!

@agustif sure that sounds great! Just give me some time to set it up.

Sure np! if you think that's ok just mention me on what you could use some help on!

@BrainMaestro whenever you spin up the repo, feel free to swap out the default starter logo with this one I just made:

elixir-logo

Just set up the Gitter chatroom for this! Lets do our collaborator coordination in there ๐Ÿ‘

cc/ @BrainMaestro @agustif

@BrainMaestro happy to join and contribute. Will check things out this week :-)

So I forked the starter kit here (https://github.com/sotojuan/realworld-starter-kit) as per Eric's instructions. Happy to work somewhere else though since it was your idea @BrainMaestro.

Before I do anything... what are we using? Raw Plug? Phoenix (1.2 or 1.3 beta?)? Feel free to answer here or in Gitter.

@sotojuan I already created a repo here https://github.com/BrainMaestro/elixir-phoenix-realworld. Sorry for not linking it earlier.

I think Phoenix the latest stable phoenix is a good idea. I'll add the starter files today. Also thanks for wanting to contribute. This project will pick up steam soon. Sorry for slowing everyone down.

I added a list of all the tasks to a github project here

Thanks @BrainMaestro! Will have a PR or something up soon :-)

I don't know if it should be discussed here, at the @BrainMaestro repo, or at the gitter. But shouldn't it be using the phoenix 1.3 structure? I know it's not released yet, but it already has rc-1 and it's possible to create a project with the new structure. Since it's a project to serve as an example for devs, I think it should be built with the new structure.
The first topic in this talk by Chris Mccord(the creator of Phoenix) is this organization change:
https://www.youtube.com/watch?v=tMO28ar0lW8

+1 on 1.3 but doesnt matter starting on 1.2, we could document changes and update the repo and that would help making old docs/tutos not as much obsolete maybe

But id do it in 1.3 too, I was just waiting to see what @smpallen does on coherence

But id do it in 1.3 too, I was just waiting to see what @smpallen does on coherence

I wouldn't recomend coherence at all, it's built with comeonin and probably uses bcrypt. It looks like it's made to work with devise.
I'd rather built it from scratch(given the modular nature of Elixir/Phoenix, it's not a complex thing) using argon2 for hashing.
Just for reference:
https://password-hashing.net/

I am not advocating for coherence for this project, but I'm following along the updates of some libraries I want to use in a personal project and everyone seems to be scrambling to do the 1.3 updates, that was my point, just waiting to see what others do and then proceed.

Since we're doing an API only backend Im guessing we will use guardian and maybe guardian_db to store passwords in db.

I've recently used Gatling for deployment to ubuntu VPS and was happy to not have to interact with nginx!

I am not advocating for coherence for this project, but I'm following along the updates of some libraries I want to use in a personal project and everyone seems to be scrambling to do the 1.3 updates, that was my point, just waiting to see what others do and then proceed.

I understood that, i just commented as a tip. ๐Ÿ˜…

Since we're doing an API only backend Im guessing we will use guardian and maybe guardian_db to store passwords in db.

Actually for this project, I think it will be implemented html and api(based on the rails implementtation that has both).
@EricSimons is that correct?

I've recently used Gatling for deployment to ubuntu VPS and was happy to not have to interact with nginx!

An Elixir/Phoenix project? I think cowboy is more than enough as a server ๐Ÿ˜› ...

Nope, this is strictly API requests only - the Rails codebase only sends JSON via endpoints too (no HTML, etc)

I saw some views there, thought it had html... ๐Ÿ˜…

Exactly, at the end of the day any of the backends will match any of the clients, and we're keeping it like this in realWorld, Im guessing server rendered pages are not taken into account.

Yeah server rendering was intentionally left out of the spec because of how much it varies based on framework/language/etc. So def make your tech decisions based around the backend being strictly an API server ๐Ÿ‘

I think 1.3 is a good choice too. Will update it.

Hey, yall!

I think this conversation would be better had at BrainMaestro/elixir-phoenix-realworld. As a rule of thumb, implementation-specific talks are a good candidate for being in the implementation repo.

CC @EricSimons Thoughts?
CC @fcevado Because you said you weren't sure. ๐Ÿ˜„

@EricSimons I have been busy over the last few months and have been unable to work on the project, if there's someone else interested in it, I am willing to transfer the repo over to them. Thanks.

huyz commented

@BrainMaestro Understandable. Thanks for getting things started.

I'm gonna wait until someone takes over in order to hopefully contribute

@BrainMaestro In this case, please transfer the repo to me, I'm happy to take over.
And +1 appreciate your efforts getting this off the ground.

Hey @lbighetti. That's great. I'll do that right now. Thanks for taking over.

@lbighetti @BrainMaestro lmk if there's anything I can do here to help! Should I point the issue to point at @lbighetti's repo?

@EricSimons I think that makes sense ๐Ÿ‘

@lbighetti hows the codebase coming along for this? I can't wait to see it! Btw I updated this issue to point at your repo ๐Ÿ‘

Hi @EricSimons,

We have just completed implementing the specs !
Can you move us to peer review?

I'm working on deploying this to heroku so we can use frontends with it.

@lbighetti awesome work!! ๐Ÿ‘ I will move ya to RFC first thing tomorrow morning :)

@EricSimons Thanks!
Looking forward to joining the rank of backends ๐Ÿ…

Ping @EricSimons ๐Ÿ˜ƒ

@lbighetti done!! So sorry about my delay on this, the past few weeks have been nuts ๐Ÿ˜…

To everyone who helped put this together: thank you so much, this is seriously incredible work. ๐Ÿ‘ I've just created the new repo (https://github.com/gothinkster/elixir-phoenix-realworld-example-app) and listed it on the main readme! Feel free to push any remaining updates for the repo's readme/etc over at the new repo ๐Ÿ‘

Again, amazing works and congrats!!

Thank you for the kind words @EricSimons
And thanks for moving it over!
Will continue development there.
Best!