Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 70 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Random Links Project

## Project Purpose

The purpose of the Random Links project is to provide a modern, full-stack platform for managing, sharing, and organizing web links with advanced features such as tagging, authentication, permissions. The project aims to:

- Help users save, categorize, and search their favorite links efficiently
- Enable secure access and sharing of links with robust authentication and permission controls
- Offer a user-friendly web interface and a scalable backend API
- Support collaborative features and extensibility for future enhancements

This is a monorepo for the **Random Links** project, containing both backend and frontend applications, as well as shared packages.

## Project Structure

- **apps/backend/**: Node.js backend service (authentication, API, migrations, Prisma ORM)
- **apps/web-app/**: React web application (Vite, Storybook, UI components)
- **packages/**: Shared packages (type-safe errors, lint config)

## Getting Started

### Prerequisites
- [Node.js](https://nodejs.org/) (v18+ recommended)
- [pnpm](https://pnpm.io/)

### Install Dependencies

```bash
pnpm install
```

### Running the Backend

```bash
cd apps/backend
pnpm dev
```

### Running the Web App

```bash
cd apps/web-app
pnpm dev
```

### Database Migrations

- Migration files are in `apps/backend/migrations/`.
- Use the CLI tools in `apps/backend/src/cli/` to apply or create migrations.

### Storybook

```bash
cd apps/web-app
pnpm storybook
```

## Packages

- **type-safe-errors**: Utilities for type-safe error handling.
- **oxlint-config**: Shared lint configuration.

## Development

- Use [pnpm workspaces](https://pnpm.io/workspaces) for managing dependencies across packages and apps.
- Lint, format, and test scripts are defined in each package/app as needed.

## License

MIT License