railwayapp / templates

Railway starters
https://railway.app
MIT License
334 stars 150 forks source link

Update Node Starter #408

Open ndneighbor opened 1 year ago

ndneighbor commented 1 year ago

Update/Create a Node Starter

An updated Node.js starter template designed to accelerate the setup process for Node.js projects.

Payout

$50

Expectation

Develop a well-organized Node.js starter template with clear documentation for easy setup.

Bonus points: Include basic project structure, Express.js integration, and database connectivity examples. Or adding testing support and advanced features like authentication. A hosted tutorial or guide is highly appreciated.

edmondwinston commented 1 year ago

I'm on this.

edmondwinston commented 1 year ago

Hi @ndneighbor,

Sorry for tagging, but I've just got home and noticed that there are several Node.js/Express.js templates created already, so do you feel the need of having a template with the bonus points thing? Or another with tRPC. Just ping me if that's the case. Thank you.

melissa-hale commented 1 year ago

Hi @edmondwinston ! I appreciate you reviewing the existing templates and checking in beforehand. I agree, I think we already have some popular node templates. Leaning into the "Bonus" section though, you could build something with a DB attached and setup some authentication and/or test suite to show off a good project scaffold with built in developer ops. Just a thought, let me know!

edmondwinston commented 1 year ago

@melissa-hale Thank you for replying.

  1. Is there any particular request for the authentication part?
  2. Could you please elaborate more on the devops requirements, or should I just sprinkle something?
  3. Is there a deadline for submitting?
melissa-hale commented 1 year ago

Hey @edmondwinston !

  1. How about passport.js? I think that would be super cool to see, and I don't think we have any templates using it today.
  2. I was thinking maybe just adding a simple unit test, and the value would be in seeing the example of how that is setup in a project. If this doesn't spark joy though, don't worry with it and focus on Number 1 above
  3. Technically the end of the program is Sept 15, but we can be flexible especially since we're a little behind on these reviews. I'm happy to extend the time for you if you're excited about turning this one in.
edmondwinston commented 1 year ago

Yes, I'm turning this one in, but I'm actually on holiday, so will get back to you within 4-5 days with a sketch. Thank you.

edmondwinston commented 1 year ago

@melissa-hale

Hi, I'm back, and here is the repo. Tests and guiding comments are on the way. Please feel free to propose any improvements. Thank you.

melissa-hale commented 1 year ago

I love this @edmondwinston! It's such a nice example of a modular project. Since this is a starter, I am looking forward to seeing how your documentation helps less experienced developers understand how the various modules are interacting with each other. It doesn't have to be super thorough, just enough for someone to feel confident enough to play around and make it their own. I think a section that informs how to interact with the API routes and how to run the tests is important.

Thanks for your work on this! We'll wrap the bounty program on Friday, but I'll give you extra time to polish this one 🔥

edmondwinston commented 1 year ago

@melissa-hale

Thank you for the kind words! I have just added a few little notes, what do you think?

melissa-hale commented 1 year ago

Hi @edmondwinston ! the documentation is nice and made me laugh 😄 I think what I'm missing is an entry point to see how the auth is working. I know you could do it with an HTTP client, but I was thinking maybe adding a login form would be cool. I went ahead and threw something rough together: https://github.com/melissa-hale/express-passport this uses ejs to serve up an ugly form haha

you're welcome to do whatever you'd like of course (login form or no), but you can also copy what I did. Then please update the docs to be explicit on the routes that are available. /, /login, /api/v1/account, /api/v1/account/authenticate (POST)

Once you're satisfied -

I'll give it a final review and we'll get you paid!

bhavuk2002 commented 1 year ago

i can work on this

  1. can add node templates for authentication
  2. db templates
  3. setting up routers
  4. basic setup of api
  5. user sign in and sign out

and as you specify : )

Assign me this.