A serverless application for secure file sharing, storage, and conversion using AWS services.
AWS Share Files is a full-stack serverless application that provides a user-friendly interface for file management in the cloud. Built with modern web technologies and AWS cloud services, it enables secure file operations while maintaining a responsive UI experience.
- Upload Files: Securely upload files to Amazon S3
- Delete Files: Remove files from S3 storage
- List Files: Browse all stored files with metadata
- Generate Shareable URLs: Create temporary secure access links for files
- Add Recipients: Store recipient email addresses in DynamoDB
- Edit Recipients: Update existing recipient information
- Delete Recipients: Remove recipients from the database
- Send Files: Share uploaded files with stored recipients via email
- Format Conversion: Convert between file formats (e.g., .docx to .pdf)
- Get Conversion Status: Track conversion progress
- Secure Access: Authentication powered by NextAuth.js
- AWS Integration: Seamless connection to AWS services
- Next.js 15 - React framework for server-rendered applications
- React 19 - UI component library
- TypeScript - Type-safe JavaScript
- Material UI 6 - React component library
- React Hook Form - Form validation and management
- Zustand - State management
- Next.js API Routes - Serverless functions
- Next Auth - Authentication solution
- Amazon S3 - Object storage for files
- Amazon DynamoDB - NoSQL database for storing email recipients
- AWS Lambda - Serverless computing for file processing
- Amazon SES - Email delivery service
- Node.js (version in .nvmrc)
- Yarn package manager
- AWS account with configured credentials
# Clone the repository
git clone https://github.com/yourusername/aws-share-files.git
cd aws-share-files
# Install dependencies
yarn
Create a .env.local
file with your AWS configurations:
# AWS Configuration
AWS_REGION=your-region
AWS_S3_BUCKET=your-bucket-name
AWS_DYNAMODB_TABLE=your-table-name
# Auth Configuration
NEXTAUTH_URL=http://localhost:6969
NEXTAUTH_SECRET=your-secret
# Other configurations
# ...
# Start the development server on port 6969
yarn dev
# Build the application for production
yarn build
# Start the production server
yarn start
# Run ESLint
yarn lint
/pages
- Next.js pages and API routes/pages/api
- Serverless API endpoints/src
- Core application logic/public
- Static assets/styles
- CSS and styling
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.