The Environment Sharing Platform is a secure web application that enables development teams to safely manage, store, and share environment variables without exposing sensitive credentials through insecure channels like Slack or email. Built with Next.js and MongoDB, it provides an encrypted, centralized vault for all your environment variables.
- Secure Environment Variable Storage - Encrypted storage of API keys, database credentials, and other sensitive configuration data
- Team Collaboration - Create workspaces and groups to organize and share environment variables with team members
- Role-based Access Control - Owner and member roles with appropriate permissions for workspace and group management
- Authentication System - Secure user registration and login with NextAuth.js integration
- Workspace Management - Create, edit, and delete workspaces to organize your projects
- Group Management - Organize environment variables into groups within workspaces
- Member Management - Add and remove team members from groups and workspaces
- Sharing Tokens - Generate secure tokens for sharing environment variables
- Dark/Light Theme - Toggle between dark and light themes for better user experience
- Responsive Design - Fully responsive design that works on desktop and mobile devices
- Rate Limiting - Built-in rate limiting to prevent abuse and ensure system stability
- NodeJS and Python SDK - Fetch enviornment variables directly from the terminal
- Basic Groups - Create basic groups with limited features
- Next.js 15 - React framework for production
- React 18 - JavaScript library for building user interfaces
- TypeScript 5 - Typed superset of JavaScript
- Tailwind CSS 4 - Utility-first CSS framework
- Lucide React - Beautiful & consistent icon toolkit
- Next Themes - Perfect dark mode in 2 lines of code
- Next.js API Routes - Serverless API endpoints
- MongoDB - NoSQL database for data storage
- Mongoose - MongoDB object modeling for Node.js
- NextAuth.js - Complete open source authentication solution
- bcryptjs - Password hashing library
- crypto-js - Cryptographic algorithms for data encryption
- rate-limiter-flexible - Rate limiting middleware
- custom-uuid - UUID generation for unique identifiers
- ESLint - JavaScript linter
- PostCSS - Tool for transforming CSS with JavaScript
- Autoprefixer - PostCSS plugin to parse CSS and add vendor prefixes
- next (^15.3.5)
- react (18.2.0)
- react-dom (18.2.0)
- mongoose (^8.15.1)
- next-auth (^4.24.11)
- bcryptjs (^3.0.2)
- crypto-js (^4.2.0)
- tailwindcss (^4.0.0)
- next-themes (^0.4.6)
- lucide-react (^0.522.0)
- rate-limiter-flexible (^7.1.1)
- sonner (^2.0.6)
- custom-uuid (^3.1.1)
- clsx (^2.1.1)
- typescript (^5)
- @types/node (^20)
- @types/react (^19)
- @types/react-dom (^19)
- @types/crypto-js (^4.2.2)
- eslint (^8.56.0)
- eslint-config-next (15.3.2)
- Node.js (v18 or higher)
- MongoDB database
- npm or yarn package manager
- Clone the repository:
git clone https://github.com/GDGVIT/env-sharing.git
cd env-sharing/web-app- Install dependencies:
npm install- Set up environment variables:
Create a
.env.localfile in theweb-appdirectory with the following variables:
# Database
NEXT_MONGO_URI=your_mongodb_connection_string
# NextAuth Configuration
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your_nextauth_secret
#Google oAuth Credentials
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
# Encryption
NEXT_PUBLIC_ENCRYPTION_SECRET=your_32_character_encryption_key
#Others
NEXT_PUBLIC_APP_NAME=your_app_nameStart the development server:
npm run devThe application will be available at http://localhost:3000
Build and start the production server:
npm run build
npm startRun ESLint to check for code quality issues:
npm run lintweb-app/
├── src/
│ ├── app/ # App router pages and API routes
│ │ ├── api/ # API endpoints
│ │ │ ├── (auth)/ # Authentication routes
│ │ │ └── (user)/ # User-related routes
│ │ ├── dashboard/ # Dashboard pages
│ │ ├── login/ # Login page
│ │ └── signup/ # Signup page
│ ├── components/ # Reusable React components
│ │ ├── dashboard/ # Dashboard-specific components
│ │ └── misc/ # Miscellaneous components
│ ├── models/ # MongoDB schemas
│ ├── providers/ # React context providers
│ ├── types/ # TypeScript type definitions
│ └── utils/ # Utility functions
├── public/ # Static assets
└── package.json # Project dependencies and scripts
|
Chirayu Sahu
Frontend / Backend |
Humaidh
Security |
Made with ❤ by GDSC-VIT