This is a web-based file management system that allows users to create, organize, and manage text-based files within a nested folder structure. The app includes features such as workspaces that can be shared between users, lazy loading, and cursor-based pagination for efficient data handling.
- Nested Folders and Files: Organize files within a hierarchical folder structure.
- Workspaces: Manage multiple workspaces, each containing its own set of folders and files.
- Frontend: Next.js, Tailwind CSS, TypeScript
- Backend: tRPC, DrizzleORM, PostgreSQL
- Deployment: Vercel
- Version Control: Git/GitHub
Ensure you have the following installed:
- Node.js (v14 or higher)
- npm or yarn
- PostgreSQL
- Clone the repository:
git clone https://github.com/your-username/your-repo-name.git
cd your-repo-name
- Install dependencies:
bun install
-
Set up the environment variables by copying .env.example to .env and configuring the necessary values.
-
Run database and apply schema:
docker compose up -d
bun db:push
- Start the development server:
bun dev
- Open your browser and go to http://localhost:3000.
- app/: Contains the Next.js pages and api routes.
- app/**/_components: Specific components for each page.
- components/: Reusable React components.
- styles/: Global styles and Tailwind configuration.
- server/: Backend code including tRPC procedures and database models.
- server/db/: Database connection and schema definitions.
- server/api/: tRPC routers for handling API requests.
- utils/: Utility functions and helpers.
- trpc/: Contains the tRPC router and procedure definitions.
- db/: Database connection and schema definitions using DrizzleORM.
- /api/trpc: Main API route for handling tRPC requests.
This project is configured to deploy to Vercel. Simply connect the repository to your Vercel account and follow the instructions to deploy.
Feel free to submit issues and pull requests.