TenDrive is a Google Drive-like web app where users can create folders, upload files, preview, rename, move to bin, search file or folder, share file or folder, and download file.
You can try out the live demo of the app here: ten-drive
- User authentication using Appwrite
- Folder creation and navigation
- File upload and preview
- File and folder rename and delete
- File and folder search and share
- File download
- Responsive design
The app is built using the following technologies:
- Next.js - A React framework for building hybrid applications
- TypeScript - A superset of JavaScript that adds static types
- ui.shadcn.com - A UI component library for React
- Redux Toolkit - A toolkit for managing application state
- TailwindCSS - A utility-first CSS framework
- Appwrite - An open-source, self-hosted backend as a service
To run the app locally, you need to have Node.js and pnpm installed on your machine.
- Clone this repository:
git clone https://github.com/tehseen01/tendrive.git
- Install the dependencies:
cd tendrive
pnpm install
- Create a
.env.local
file in the root directory and add the following variables:
NEXT_PUBLIC_APPWRITE_URL= # Your Appwrite endpoint
NEXT_PUBLIC_APPWRITE_PROJECT_ID= # Your Appwrite project ID
NEXT_PUBLIC_APPWRITE_DATABASE_ID= # Your Appwrite database ID
NEXT_PUBLIC_APPWRITE_FOLDER_COLLECTION_ID= # Your Appwrite collection ID for folders
NEXT_PUBLIC_APPWRITE_BUCKET_ID= # Your Appwrite bucket ID for storing files
NEXT_PUBLIC_APPWRITE_USER_COLLECTION_ID= # Your Appwrite collection ID for users
NEXT_PUBLIC_APPWRITE_FILE_COLLECTION_ID= # Your Appwrite collection ID for files
NEXT_PUBLIC_APPWRITE_SHARE_COLLECTION_ID= # Your Appwrite collection ID for shares
- Start the development server:
pnpm run dev
- Open http://localhost:3000 with your browser to see the app.
I would like to thank Hitesh Choudhary for his amazing tutorials on Appwrite. He helped me to learn how to use Appwrite and integrate it with Next.js.
We'd love to hear your feedback and suggestions on how we can enhance TenDrive. Please feel free to reach out with any questions or comments.
This project is licensed under the MIT License - see the LICENSE file for details.