- 🤖 Introduction
- ⚙️ Tech Stack
- 🔋 Features
- 🤸 Quick Start
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, ensuring all your important data.
👉 View and Manage Files: Users can browse through their 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 and easy access to important content.
👉 Dashboard: Gain insights at a glance with a dynamic dashboard that showcases total and consumed storage, recent uploads, and a summary of files grouped by type.
👉 Global Search: Users can quickly find files and shared content across the platform with a robust global search feature.
👉 Sorting Options: Organize files efficiently by sorting them by date, name, or size, making file management a breeze.
👉 Modern Responsive Design: A fresh and minimalist UI that emphasizes usability, ensuring a clean aesthetic across all devices.
and many more, including the latest React 19, Next.js 15 and Appwrite features alongside code architecture and reusability
Follow these steps to set up the project locally on your machine.
Prerequisites
Make sure you have the following installed on your machine:
Cloning the Repository
git clone https://github.com/atomhudson/skyvault.git
cd skyvaultInstallation
Install the project dependencies using npm:
npm installSet Up Environment Variables
Create a new file named .env.local in the root of your project and add the following content:
NEXT_PUBLIC_APPWRITE_ENDPOINT=""
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.
To run this project, you need to configure Appwrite and obtain the required environment variables.
-
Go to Appwrite Console (or your self-hosted Appwrite instance).
-
Click Create Project → give it a name (e.g.,
SkyVault) and select your platform (Web →http://localhost:3000). -
Once created, copy the Project ID and Project Name.
-
🔑 Use them in:
NEXT_PUBLIC_APPWRITE_PROJECT_ID="your-project-id" NEXT_PUBLIC_APPWRITE_PROJECT_NAME="SkyVault"
-
- Go to your project’s Settings → API tab.
- Copy the Endpoint URL (e.g.,
https://cloud.appwrite.io/v1). - Endpoint URL may very region-to-region.
- 🔑 Add it to:
NEXT_PUBLIC_APPWRITE_ENDPOINT="https://cloud.appwrite.io/v1"
- 🔑 Add it to:
- In the sidebar, go to Database → Create Database.
- Name it (e.g.,
skyvault_db) and copy the Database ID.- 🔑 Add it to:
NEXT_PUBLIC_APPWRITE_DATABASE="your-database-id"
- 🔑 Add it to:
- Inside your database → click Add Collection → name it
users. - Configure attributes like
name,email,avatar, etc. - Copy the Collection ID.
- 🔑 Add it to:
NEXT_PUBLIC_APPWRITE_USERS_TABLE="users-collection-id"
- 🔑 Add it to:
- In the same database, create another collection → name it
files. - Add attributes like
fileId,name,size,type,ownerId. - Copy the Collection ID.
- 🔑 Add it to:
NEXT_PUBLIC_APPWRITE_FILES_TABLES="files-collection-id"
- 🔑 Add it to:
-
Go to Storage → Create Bucket.
-
Name it (e.g.,
skyvault_bucket). -
Enable permissions for authenticated users to read/write.
-
Copy the Bucket ID.
-
🔑 Add it to:
NEXT_PUBLIC_APPWRITE_BUCKET="your-bucket-id"
-
-
Go to Project Settings → API Keys → Create API Key.
-
Select the required scopes:
- Databases (read, write, delete)
- Storage (create, read, delete)
- Users (read, write, update)
-
Copy the Secret API Key.
-
🔑 Add it to:
NEXT_PUBLIC_APPWRITE_KEY="your-secret-api-key"
-
NEXT_PUBLIC_APPWRITE_PROJECT_ID="your-project-id"
NEXT_PUBLIC_APPWRITE_PROJECT_NAME="SkyVault"
NEXT_PUBLIC_APPWRITE_ENDPOINT="https://cloud.appwrite.io/v1"
NEXT_PUBLIC_APPWRITE_DATABASE="your-database-id"
NEXT_PUBLIC_APPWRITE_USERS_TABLE="users-table-id"
NEXT_PUBLIC_APPWRITE_FILES_TABLES="files-table-id"
NEXT_PUBLIC_APPWRITE_BUCKET="your-bucket-id"
NEXT_PUBLIC_APPWRITE_KEY="your-secret-api-key"Running the Project
npm run devOpen http://localhost:3000 in your browser to view the project.
