tokyo-tech-stack-exchange / mobdev-toolkit

Monorepo boilerplate to kickstart mob programming across various web and AI technologies.
MIT License
0 stars 2 forks source link

Define Repository Structure and Tech Stack for Mob Programming Monorepo #1

Closed Konosh93 closed 1 year ago

Konosh93 commented 1 year ago

This issue aims to discuss and define the structure of our monorepo and the technologies to be included in the boilerplate code. To ensure a smooth and efficient mob programming experience, we need to decide on the frontend and backend frameworks, as well as any AI libraries that we'll be using.

Please share your thoughts on the following topics:

Repository structure: How should we organize the frontend, backend, and AI components within the monorepo? Frontend frameworks: What frontend frameworks (e.g., React, Angular, Vue) should we include in the boilerplate? Backend frameworks: What backend frameworks (e.g., Express, Django, Flask) should we incorporate? AI libraries: What AI libraries (e.g., TensorFlow, PyTorch, scikit-learn) are essential for our mob programming projects? Additional considerations: Are there any other tools, libraries, or best practices we should adopt for our monorepo? Let's collaborate to create a solid foundation for our mob programming sessions!

NikitaKurpas commented 1 year ago

Before I reply, for this or next time, we could try using GH Discussions for things that are, well, discussions. They have some features that GH Issues don't, like replies.


General setup

Backend frameworks

Since a lot of AI tools and libs are only available for Python, I think we should go with it. Depending on what we will write, I propose the following:

Frontend frameworks

Since the topic of this collaboration session is AI, I think we should use the simplest and easiest setup for the frontend. Hence, I propose we use either:

AI libraries

We can add any AI libs deemed necessary for the project, but to start with, we can:

Other tools

TBD

Repository structure

Considering all of this (my preferred choices are emboldened), I would propose two structures:

Since in most cases we will have separate apps for backend and frontend, we can use Docker and Docker Compose to orchestrate the two. Note that during development we won't need Docker Compose, since the whole dev env will be running in a container.


WDYT?

Konosh93 commented 1 year ago

@NikitaKurpas, thank you for the excellent comment and detailed information with links. Your input has been very helpful in refining our approach for the project setup. Based on your suggestions, and our subsequent discussions, let me know if you agree with the following updates:

  1. For the Editor/IDE, we'll accommodate personal preferences and manage collaboration through Git. We'll decide on the day of the session based on a quick poll.
  2. We won't create templates for our projects. Instead, we'll use lightweight frameworks like Streamlit by default and use the first commit of our future projects as a boilerplate for subsequent projects.

We'll keep the suggestions in the issue for future reference as general guidelines. For our first mob programming session, we will create the repository using Streamlit and perform the initial setup on the day of the session.

Thanks again for your valuable input!

P.S. Regarding GH Discussions, I have never used them but they seem to be better for discussions than issues indeed.

elliexcoding commented 1 year ago

Are we going to merge in changes using forks or branches?

NikitaKurpas commented 1 year ago

Are we going to merge in changes using forks or branches?

I was thinking branches, but that means that @Konosh93 will have to add everyone as a contributor. If that is not desirable, then we can use forks instead.