AIO Workspace is a web-based productivity platform built using the MERN stack (MongoDB, Express.js, React, and Node.js). It offers an all-in-one solution with features like a dashboard, document creation, file storage, email management, and task tracking, similar to Google Workspace.
- Features
- Project Structure
- Installation
- Usage
- Technologies Used
- Environment Variables
- Contributing
- License
- Authentication: User login, signup, and protected routes with Google OAuth.
- Dashboard: Overview of tasks, recent documents, unread emails, and storage.
- Documents: Create, edit, and manage documents using a built-in text editor.
- Drive: Upload, organize, and manage files and folders.
- Mail: Send, receive, and manage emails with an interface similar to Gmail.
- Tasks: Create, manage, and track tasks with due dates and statuses.
workspace
│
├── client # Frontend code
│ ├── public # Public files
│ │ └── index.html # Root HTML file
│ ├── src # Source files
│ ├── assets # Static assets (e.g., images, icons)
│ ├── components # Reusable components (Navbar, Authentication, etc.)
│ ├── pages # Application pages (Dashboard, Documents, etc.)
│ ├── App.jsx # Main app component
│ └── index.jsx # Entry point for React
│ └── .env # Frontend environment variables
│
├── server # Backend code
│ ├── Config # Configuration files
│ ├── Controllers # API controllers (taskController.js, etc.)
│ ├── middleware # Authentication middleware
│ ├── models # Mongoose models (Task.js, Document.js, etc.)
│ ├── routes # API routes
│ ├── uploads # Folder for uploaded files
│ ├── server.js # Express server entry point
│ └── .env # Backend environment variables
- Node.js and npm installed
- MongoDB server running locally
- A Google account for OAuth and Gmail API integration
-
Clone the repository:
git clone https://github.com/muthu17ks/workspace.git cd aio-workspace -
Install dependencies:
cd client && npm install cd ../server && npm install
-
Configure environment variables:
Create a.envfile in both/clientand/serverdirectories with appropriate values. -
Start the application:
- Run the backend server:
cd server && npm run devStart
- Run the frontend client:
cd client && npm start
- Run the backend server:
-
Access the app:
Open http://localhost:3000 in your browser.
- Login: Use Google OAuth or register an account.
- Dashboard: View a summary of your tasks, emails, and recent documents.
- Documents: Create new documents and access existing ones from the Documents page.
- Drive: Manage files and folders, upload documents, and share links.
- Mail: Send and receive emails, view inbox, sent mails, and archived items.
- Tasks: Add new tasks, set due dates, and track your progress.
- Frontend: React.js, React Router
- Backend: Node.js, Express.js
- Database: MongoDB with Mongoose
- Authentication: Passport.js with Google OAuth2
- APIs: Gmail API
- Styling: CSS Modules
- State Management: Context API
REACT_APP_GOOGLE_CLIENT_ID=<your-google-client-id>
MONGODB_URI=mongodb://localhost/workspace
JWT_SECRET=<your-jwt-secret>
GOOGLE_CLIENT_ID=<your-google-client-id>
GOOGLE_CLIENT_SECRET=<your-google-client-secret>
SESSION_SECRET=<your-session-secret>
REDIRECT_URI=http://localhost:3001/auth/google/callback
TWILIO_ACCOUNT_SID=<your-twilio-account-sid>
TWILIO_AUTH_TOKEN=<your-twilio-auth-token>
TWILIO_VERIFY_SERVICE_SID=<your-twilio-verify-service-sid>
We welcome contributions! Please follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature-branch
- Make changes and commit:
git commit -m "Add new feature" - Push to your branch:
git push origin feature-branch
- Open a pull request on GitHub.
This project is licensed under the MIT License. See the LICENSE file for more details.
MIT License Overview The MIT License is a permissive free software license that allows users to do anything they want with your project, as long as they include a copy of the original MIT License and copyright notice with it. This makes it easy for others to use, modify, and distribute your project while providing credit to the original authors.