Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create Walking Skeleton #1

Open
7 tasks done
jakubkoci opened this issue Jun 16, 2023 · 7 comments · Fixed by #4 or #11
Open
7 tasks done

Create Walking Skeleton #1

jakubkoci opened this issue Jun 16, 2023 · 7 comments · Fixed by #4 or #11
Assignees

Comments

@jakubkoci
Copy link
Collaborator

jakubkoci commented Jun 16, 2023

As a Developer, I want to have an empty project skeleton with basic infrastructure tooling which is deployable, so that I can start adding features and deliver value as soon as possible.

  • NodeJS, TypeScript, Express, Jest, async and error handling middleware, file-based database
  • Logger, middleware to log HTTP requests
  • Linter with pre-commit hook
  • Swagger UI
  • Docker Container
  • CI and deployment
  • Database (Postgres / Mongo)

I usually create one issue and implement it with more consecutive PRs.

Although we haven't discussed deployment yet, I added the Docker containerization step. It might also require some CI work too. It's a good practice to deploy the service as soon as possible. Containerization is the least we can do right now, but we should discuss the CI and deployment infra soon.

I purposefully moved the database as the last point. It should be more of an implementation detail.

@lohanspies
Copy link
Contributor

@wdbasson @rblaine95 can we please add this to the DIDx test infrastructure as a pod?

@rblaine95
Copy link
Collaborator

@lohanspies, yes, it should be relatively straight forward.

@jakubkoci, can I recommend using rtx (rust implementation of asdf) to control the version of NodeJS on the repository level. Will make it easier to control NodeJS version used in repository.

Once I know the required NodeJS version, containerizing and building CI will be easier.

@rblaine95
Copy link
Collaborator

My bad for triggering issue closure

@jakubkoci
Copy link
Collaborator Author

@rblaine95 I'm sorry I overlooked the comment

@jakubkoci, can I recommend using rtx (rust implementation of asdf) to control the version of NodeJS on the repository level. Will make it easier to control NodeJS version used in repository.

Does it mean developers must install this tool on their machines?

It seems like a great tool, however, we're usually using n, nvm or volta (on personal computer) to manage just Node versions.

@rblaine95
Copy link
Collaborator

rblaine95 commented Jun 27, 2023

I know, from experience, that rtx is fully compatible with asdf and nvm.
I'm not sure about n, and volta, but I'm pretty sure it's also compatible with those.

You don't need to install rtx, but it's a tool I highly recommend because it's polyglot and very fast (±20-200x faster than asdf)

@jakubkoci
Copy link
Collaborator Author

@rblaine95 I see. Sound like a good tool 👍

If we don't force developers to install it to be able to contribute then I'm happy with that.

How is it going with deployment? Do you need something from my side to add or change to help you with the deployment? I'm going to add dotenv package to be able to pass env such as PORT and others from outside and not hardcode them in the code.

@rblaine95
Copy link
Collaborator

rblaine95 commented Jul 4, 2023

How is it going with deployment?

I haven't been able to do the CD side of things yet as some higher priority work has come onto my desk.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants