The Smart Schedule Assistant is a lightweight scheduling application designed to help users organize their events while providing insights using sentiment analysis. It allows users to add, manage, and delete events, and uses a sentiment analysis tool to detect the emotional tone of each event. The project is powered by React and Firebase for real-time updates and persistence.
I was inspired to build this project based on my interest in combining productivity tools with insights from AI. Scheduling can often be stressful, and knowing the sentiment behind events can help users make better decisions. With more time, the project could be expanded to include AI-driven suggestions and Google Calendar integration for a complete scheduling solution.
Ensure you have the following installed on your machine:
- Node.js (v14 or higher)
- Firebase account with Firestore enabled
-
Clone this repository to your local machine:
git clone https://github.com/albertboyd/smart-schedule-assistant.git
-
Navigate to the project directory:
cd smart-schedule-assistant
-
Install the dependencies:
npm install
-
Set up Firebase:
- Go to the Firebase Console and create a project.
- Enable Firestore in your Firebase project.
- Copy your Firebase configuration and paste it into
src/firebaseConfig.js
.
-
Start the development server:
npm run dev
-
Open your browser and navigate to:
http://localhost:5173
-
Event Management:
- Users can add, view, and delete events.
- All events are persisted in Firebase Firestore.
-
Sentiment Analysis:
- Each event description is analyzed for sentiment (positive, negative, neutral) using the Sentiment library.
- The sentiment is displayed alongside each event.
-
Real-time Updates:
- Using Firebase Firestore, all changes to the events (additions, deletions) are reflected in real-time without needing a page refresh.
- React: Frontend framework for building the UI.
- Firebase: Used for Firestore database to store and retrieve event data.
- Firebase SDK: For integrating Firebase Firestore with the React app.
- Sentiment: A JavaScript library for performing sentiment analysis on event descriptions.
- The project follows a simple structure with one main component (
EventList.jsx
) to manage events. The component handles Firebase integration for storing and retrieving events. - Sentiment analysis is applied to each event description when it's added. This adds a layer of insight into the user's events, which is displayed alongside the event name.
- Firebase is used for real-time database updates to ensure that the UI reflects changes immediately as they happen.
- Time Constraint: Due to the 3-hour time limit, I focused on getting the core functionalities working (event management, sentiment analysis, Firebase integration).
- Firebase Setup: Initial Firebase setup and ensuring Firestore operations worked smoothly within React required extra time to configure properly.
- Sentiment Integration: Although simple, integrating sentiment analysis and making sure it provided meaningful insights required tuning.
Given more time, I would implement the following features:
-
Google Calendar Integration: Sync events with Google Calendar using the Google Workspace API, so users can view and manage all their events in one place.
-
AI-based Suggestions: Use AI (such as OpenAI) to suggest event names or optimal scheduling times based on user preferences or previous events.
-
Improved UI/UX: Implement a cleaner, more intuitive design using a CSS framework like Tailwind CSS to enhance user experience.
-
Event Reminders: Add a notification system to remind users of upcoming events via email or browser notifications.
-
Advanced Sentiment Analysis: Use more advanced AI tools to provide detailed sentiment analysis and insights (e.g., breaking down sentiments per event attribute).
This project is licensed under the MIT License - see the LICENSE file for details.
Feel free to clone the project and experiment with it, and I'm open to any suggestions for improvement. Happy coding!