Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/simonknittel/link-portal
Simple multitenant web app to manage bookmarks for teams.
https://github.com/simonknittel/link-portal
app-directory next-auth nextjs planetscale playwright prisma t3-stack tailwindcss terraform typescript vercel zod
Last synced: about 9 hours ago
JSON representation
Simple multitenant web app to manage bookmarks for teams.
- Host: GitHub
- URL: https://github.com/simonknittel/link-portal
- Owner: simonknittel
- License: mit
- Created: 2023-03-15T17:43:41.000Z (over 1 year ago)
- Default Branch: develop
- Last Pushed: 2024-02-29T05:59:59.000Z (8 months ago)
- Last Synced: 2024-02-29T06:39:32.339Z (8 months ago)
- Topics: app-directory, next-auth, nextjs, planetscale, playwright, prisma, t3-stack, tailwindcss, terraform, typescript, vercel, zod
- Language: TypeScript
- Homepage: https://link-portal-eight.vercel.app
- Size: 754 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Link Portal
Simple multitenant web app to manage bookmarks for teams.
_**Note:** This app has been primarily built to test the new app directory of Next.js 13 and a few other things._
## Features
- Create bookmarks
- Group bookmarks with tags
- Create tenants/projects with their own dashboard for bookmarks
- Invite others to join your projects
- Star individual booksmarks to create a personal dashboard
- Authentication via GitHub SSO## Demo
_**Note:** This demo may be slow at times. This is mainly due to Prisma not having proper support for PlanetScale in a serverless environment like Vercel yet._
![](docs/project-dashboard.png)
## Technologies
This project has been setup with the [T3 App](https://create.t3.gg/) stack initially.
- [Next.js](https://nextjs.org/)
- [TypeScript](https://www.typescriptlang.org/)
- [Tailwind CSS](https://tailwindcss.com/)
- [Prisma](https://www.prisma.io/)
- [PlanetScale](https://planetscale.com/)
- [Vercel](https://vercel.com/)
- [NextAuth.js](https://next-auth.js.org/)
- [React Table](https://github.com/TanStack/table)
- [react-hot-toast](https://github.com/timolins/react-hot-toast)
- [React Icons](https://github.com/react-icons/react-icons)
- [Playwright](https://playwright.dev/)
- [Terraform](https://www.terraform.io/)
- [Zod](https://github.com/colinhacks/zod)
- [Mailgun](https://www.mailgun.com/)
- [Unleash](https://www.getunleash.io/)## Usage
### Requirements
- [nvm](https://github.com/nvm-sh/nvm)
### Setup
1. Configure environment variables: Duplicate `app/.env.example` to `app/.env` and fill in the blanks.
2. Install required Node.js version: `nvm use`
3. Install dependencies: `cd app && npm ci`
4. Start up the database: `cd .. && docker compose up`
5. Update the database's schema: `cd app && npx prisma db push`
6. Run the app: `npm run dev`
7. Access the app at:### Playwright tests
1. Start up the database: `docker compose up`
2. Install dependencies: `cd playwright && npm ci`
3. Run the tests: `npx playwright test --debug`## License
See [LICENSE](./LICENSE)