From e5fcf18fa4ce0a4b394db5cd8e88c3aaa3fd0490 Mon Sep 17 00:00:00 2001 From: daniel31x13 Date: Mon, 18 Mar 2024 18:36:59 -0400 Subject: [PATCH] added architecture.md file + renamed license file --- ARCHITECTURE.md | 45 +++++++++++++++++++++++++++++++++++++++++++ LICENSE => LICENSE.md | 0 2 files changed, 45 insertions(+) create mode 100644 ARCHITECTURE.md rename LICENSE => LICENSE.md (100%) diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md new file mode 100644 index 0000000..651e877 --- /dev/null +++ b/ARCHITECTURE.md @@ -0,0 +1,45 @@ +# Architecture + +This is a summary of the architecture of Linkwarden. It's intended as a primer for collaborators to get a high-level understanding of the project. + +When you start Linkwarden, there are mainly two components that run: + +- The NextJS app, This is the main app and it's responsible for serving the frontend and handling the API routes. +- [The Background Worker](https://github.com/linkwarden/linkwarden/blob/main/scripts/worker.ts), This is a separate `ts-node` process that runs in the background and is responsible for archiving links. + +## Main Tech Stack + +- [NextJS](https://github.com/vercel/next.js) +- [TypeScript](https://github.com/microsoft/TypeScript) +- [Tailwind](https://github.com/tailwindlabs/tailwindcss) +- [DaisyUI](https://github.com/saadeghi/daisyui) +- [Prisma](https://github.com/prisma/prisma) +- [Playwright](https://github.com/microsoft/playwright) +- [Zustand](https://github.com/pmndrs/zustand) + +## Folder Structure + +Here's a summary of the main files and folders in the project: + +``` +linkwarden +├── components # React components +├── hooks # React reusable hooks +├── layouts # Layouts for pages +├── lib +│   ├── api # Server-side functions (controllers, etc.) +│   ├── client # Client-side functions +│   └── shared # Shared functions between client and server +├── pages # Pages and API routes +├── prisma # Prisma schema and migrations +├── scripts +│   ├── migration # Scripts for breaking changes +│   └── worker.ts # Background worker for archiving links +├── store # Zustand stores +├── styles # Styles +└── types # TypeScript types +``` + +## Versioning + +We use semantic versioning for the project. You can track the changes from the [Releases](https://github.com/linkwarden/linkwarden/releases). diff --git a/LICENSE b/LICENSE.md similarity index 100% rename from LICENSE rename to LICENSE.md