Skip to content
This repository has been archived by the owner on Sep 18, 2024. It is now read-only.

Folder structure planning and app layout creation #124

Merged
merged 1 commit into from
May 29, 2024

Conversation

multipletwigs
Copy link
Collaborator

@multipletwigs multipletwigs commented May 27, 2024

What changed?

  1. I'll be introducing a feature based file structure here that can allow us to distribute tasks more easily... here's a quick walkthrough! Under the /threads path, we can see that each file is nicely divided based on our feature requirements, this way we can work fast individually without much coordination needed between features (for now as the goal is to move fast)
threads
├── features
│   ├── assistants-list
│   │   ├── assistants-list-item.tsx
│   │   ├── assistants-list.tsx
│   │   └── test-data.ts
│   ├── conversation-area
│   │   ├── chat-display.tsx
│   │   ├── chat-input.tsx
│   │   └── conversation-area.tsx
│   └── thread-list
│       ├── test-data.ts
│       ├── threads-list-item.tsx
│       └── threads-list.tsx
└── page.tsx
  1. What if you need to share states between the features and other pages? Well, this will come in another PR, but you can also do the same for api calls and stores, by just putting them in the relevant feature. If state/store sharing is needed, just simply import from the relevant path! Ideally, stores should be pure, i.e without side effects, loading states and whatnot should be part of the feature itself, and not shared between features. This will be more evident in future PRs.
  2. We now have three features we can work on, namely assistants-list, conversation-area and thread-list. I have also included some test-data, and when working on the UI, you should look at our backend, and understand how you could get the UI representation of the requirement, and create a mock test-data file if needed while we continue to integrate a staging environment where we can use the api directly.
  3. Tech here is pretty standard, using tailwindcss and shadcn/ui however i also customised the actual shadcn/ui components to suit what we need, for example the Input originally does not support startIcon / endIcon props. You can do this as well.

Closes #122

Copy link

vercel bot commented May 27, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
akeru-akeru-frontend ✅ Ready (Inspect) Visit Preview 💬 Add feedback May 27, 2024 9:37am
akeru-frontend ✅ Ready (Inspect) Visit Preview 💬 Add feedback May 27, 2024 9:37am

Copy link
Member

@tobySolutions tobySolutions left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Honestly, this looks great and awesome to me!!! Are we going to consider that React 19 might break somethings here or is that not a concern at all to us.

Other than that, LGTM. I'll also look at the setup for the state management thing you linked to.

@multipletwigs
Copy link
Collaborator Author

@tobySolutions not even gonna think about react 19 / next 15, i think we should just move forward with what we have for the sake of fast iterations

@tobySolutions
Copy link
Member

@tobySolutions not even gonna think about react 19 / next 15, i think we should just move forward with what we have for the sake of fast iterations

GREAT!! Thanks for that decision. Glad we are on the same page.

@multipletwigs multipletwigs merged commit bfa7039 into AkeruAI:main May 29, 2024
4 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
💻 aspect: code Concerns the software code in the repository 🕹 aspect: interface Concerns end-users' experience with the software 💪 skill: website Requires proficiency with frontend
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Akeru Web App] Assistant Chat Interface
2 participants