A storage management and file sharing platform that lets users effortlessly upload, organize, and share files. Built with the latest Next.js 15 and the Appwrite Node SDK, utilizing advanced features for seamless file management.
- React 19
- Next.js 15
- Appwrite
- TailwindCSS
- ShadCN
- TypeScript
- User Authentication with Appwrite: Implement signup, login, and logout functionality using Appwrite's authentication system
- File Uploads: Effortlessly upload a variety of file types, including documents, images, videos, and audio
- View and Manage Files: Browse through uploaded files stored in Appwrite storage, view on a new tab, rename file or delete
- Download Files: Users can download their uploaded files giving them instant access to essential documents
- File Sharing: Users can easily share their uploaded files with others, enabling collaboration
- Dashboard: Gain insights with a dynamic dashboard showing total and consumed storage, recent uploads, and file type summaries
- Global Search: Quickly find files and shared content across the platform
- Sorting Options: Organize files efficiently by sorting them by date, name, or size
- Modern Responsive Design: Fresh and minimalist UI that emphasizes usability across all devices
Make sure you have the following installed on your machine:
- Git
- Node.js
- npm (Node Package Manager)
git clone https://github.com/BinaryBrain45/storeIt.git
cd storeItInstall the project dependencies using npm:
npm installCreate a new file named .env.local in the root of your project and add the following content:
NEXT_PUBLIC_APPWRITE_ENDPOINT="https://cloud.appwrite.io/v1"
NEXT_PUBLIC_APPWRITE_PROJECT=""
NEXT_PUBLIC_APPWRITE_DATABASE=""
NEXT_PUBLIC_APPWRITE_USERS_COLLECTION=""
NEXT_PUBLIC_APPWRITE_FILES_COLLECTION=""
NEXT_PUBLIC_APPWRITE_BUCKET=""
NEXT_APPWRITE_KEY=""Replace the values with your actual Appwrite credentials. You can obtain these credentials by signing up & creating a new project on the Appwrite website.
npm run devOpen http://localhost:3000 in your browser to view the project.
We welcome contributions to improve this project! Here's how you can help:
- Fork the repository
- Create a new branch for your feature:
git checkout -b feature/your-feature-name- Make your changes and commit them:
git commit -m "Add some feature"- Push to your branch:
git push origin feature/your-feature-name- Open a Pull Request
- Follow the existing code style and formatting
- Write clear, descriptive commit messages
- Add tests for new features when possible
- Update documentation as needed
- Make sure your PR description clearly describes the changes you're proposing
Found a bug? Please open an issue with:
- A clear title and description
- As much relevant information as possible
- A code sample or an executable test case demonstrating the issue
Have ideas for new features? Open an issue to describe:
- The feature you'd like to see
- Why you need it
- How it should work
