https://github.com/shray-jayn/skyshare
SkyShare is a cloud-sharing platform.
https://github.com/shray-jayn/skyshare
ant-design aws-iam aws-s3 cloudfront docker jwt-auth mailersend monorepo nestjs postgresql prisma-orm pug-template-engine reactjs recoil turborepo typescript
Last synced: 4 months ago
JSON representation
SkyShare is a cloud-sharing platform.
- Host: GitHub
- URL: https://github.com/shray-jayn/skyshare
- Owner: shray-jayn
- Created: 2024-11-07T17:45:39.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-02-26T15:46:59.000Z (8 months ago)
- Last Synced: 2025-05-20T13:10:01.846Z (5 months ago)
- Topics: ant-design, aws-iam, aws-s3, cloudfront, docker, jwt-auth, mailersend, monorepo, nestjs, postgresql, prisma-orm, pug-template-engine, reactjs, recoil, turborepo, typescript
- Language: TypeScript
- Homepage: https://skyshare.shray.tech
- Size: 8.76 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Turborepo Starter - SkyShare
This is the root **Turborepo** for **SkyShare**, a cloud-sharing platform that includes both **frontend** and **backend** applications.
---
## 🚀 **Using this Example**
Run the following command to create a new Turborepo:
```sh
npx create-turbo@latest
```---
## 📦 **What's Inside?**
This Turborepo includes the following packages/apps:### **Apps**
- `apps/frontend`: SkyShare **React** frontend
- `apps/backend`: SkyShare **NestJS** backend### **Packages**
- `@repo/ui`: A shared React component library
- `@repo/eslint-config`: ESLint configurations (includes `eslint-config-next` and `eslint-config-prettier`)
- `@repo/typescript-config`: TypeScript configurations used throughout the monorepoEach package/app is **100% TypeScript**.
---
## 🚀 **SkyShare Features**
✅ **User Authentication** (JWT-based authentication)
✅ **File Upload & Management** (AWS S3 integration)
✅ **Share Files via Public Links** (CloudFront signed URLs)
✅ **Role-Based Access Control** (Admin/User roles)
✅ **Favorite & Search Files** (Filter and categorize files)
✅ **Email Notifications** (Mailersend integration)
✅ **Prisma ORM** for **PostgreSQL** database management
✅ **CORS & Security Configurations** (Environment-based access control)
✅ **Search API** to find files efficiently---
## 🛠 **Utilities**
This Turborepo has additional tools already set up:
- **TypeScript** for static type checking
- **ESLint** for code linting
- **Prettier** for code formatting---
## 🏗 **Setup & Build**
### 🔧 **Setup Locally**
1. **Clone the repository**
```sh
git clone https://github.com/shray-jayn/SkyShare.git
cd skyshare
```
2. **Install dependencies**
```sh
pnpm install
```
3. **Setup environment variables**
Create a `.env` file in the root directory and configure it with required values (database credentials, AWS, JWT, etc.).4. **Run database migrations**
```sh
pnpm prisma migrate dev
```### 🏗 **Build**
To build all apps and packages, run:
```sh
pnpm build
```---
## 🏃 **Develop**
To develop all apps and packages, run:
```sh
pnpm dev
```---
## ⚡ **Remote Caching**
Turborepo can use **Remote Caching** to share cache artifacts across machines, enabling you to share build caches with your team and CI/CD pipelines.By default, Turborepo caches locally. To enable **Remote Caching**, you need a **Vercel** account. If you don't have an account, create one and enter the following commands:
```sh
cd skyshare
npx turbo login
```
This will authenticate the Turborepo CLI with your Vercel account.Next, link your Turborepo to **Remote Cache** by running:
```sh
npx turbo link
```---
## 🔗 **Useful Links**
Learn more about **Turborepo**:
- [Tasks](https://turbo.build/repo/docs/core-concepts/tasks)
- [Caching](https://turbo.build/repo/docs/core-concepts/caching)
- [Remote Caching](https://turbo.build/repo/docs/core-concepts/remote-caching)
- [Filtering](https://turbo.build/repo/docs/core-concepts/filtering)
- [Configuration Options](https://turbo.build/repo/docs/reference/configuration)
- [CLI Usage](https://turbo.build/repo/docs/reference/command-line-reference)---