https://github.com/chia1104/pdf-viewer
https://github.com/chia1104/pdf-viewer
canvas docker nextjs pdfjs postgresql prisma railway
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/chia1104/pdf-viewer
- Owner: Chia1104
- License: mit
- Created: 2022-11-05T05:58:14.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-12-15T08:53:14.000Z (over 2 years ago)
- Last Synced: 2025-06-19T18:45:50.243Z (12 months ago)
- Topics: canvas, docker, nextjs, pdfjs, postgresql, prisma, railway
- Language: TypeScript
- Homepage: https://pdf-viewer-production.up.railway.app/
- Size: 572 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PDF Viewer
This is a simple PDF viewer for the web which can let users sign the PDF document.
### 👷 Some features are working on:
- [ ] Rendering PDFs
- [ ] Editing PDFs
- [ ] Saving PDFs
- [x] Authentication
### 🌐 Demo
- [Railway](https://pdf-viewer-production.up.railway.app)
- [Vercel](https://pdf-viewer-theta.vercel.app)
## Development
### 🔨 Generate `.env` file
Add your DB connection string and Google OAuth credentials.
```bash
cp .env.example .env
```
### 📦 Install dependencies
Using [pnpm](https://pnpm.io/) and also generate `prisma` client and `husky` hooks.
```bash
pnpm install
```
### 🚀 Start development server
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
```bash
pnpm dev
```
## Folder Structure
- `components` - React components.
- `lib` - Prisma client.
- `pages` - Next.js pages
- `helpers` - Some helper functions (api).
- `hooks` - React hooks.
- `server` - Some server-side functions.
- `styles` - Global styles.
- `shared` - Shared types.
- `utils` - Some utility functions.
## Languages & tools
- [x] [Next.js](https://nextjs.org/)
- [x] [Prisma](https://www.prisma.io/) - Database ORM
- [x] [React](https://reactjs.org/)
- [x] [Tailwind CSS](https://tailwindcss.com/)
- [x] [TypeScript](https://www.typescriptlang.org/)
- [x] react-pdf
- [x] [framer-motion](https://www.framer.com/motion/) - Animation library
- [x] [next-auth](https://next-auth.js.org/) - To implement OAuth
- [x] react-signature-canvas
- [x] [zod](https://zod.dev) - TypeScript-first schema validation
## Third-party services
- [x] [Railway](https://railway.app/) - Deployment
- [x] [Vercel](https://vercel.com/) - Deployment
- [x] [Google OAuth](https://developers.google.com/identity/protocols/oauth2) - Authentication
## 📄 License
Under [MIT](LICENSE)