Struggling to coordinate group projects or social plans with busy friends/family, especially when exams and deadlines seem to always get in the way? Meet Harmoni, your ultimate scheduling companion designed just for college students. Harmoni takes the hassle out of planning by syncing all your group members’ calendars into one unified view. It smartly identifies free time slots that work for everyone, while carefully avoiding clashes with exams and critical deadlines on your academic calendar. The app then creates a poll with these optimal time slots. Once the group votes on the best time, Harmoni automatically confirms the meeting and adds it to everyone’s calendars, complete with a notification. With Harmoni, group scheduling becomes effortless and efficient.
- MyCalendar Tab
- Create/Join Groups Feature
- View Synced Calendar for Each Group
- Schedule Event Feature
- Harmoni Algorithm
- Interactive Poll
- Do Not Disturb Type Feature (shows others you're currently unavailable)
- Harmoni automatically adds events to all group members’ calendars once time is confirmed.
- Notifications
- QR Code to efficiently connect calendars with someone.
- Chat feature for each group
- Feature that shows which group members/friends are currently available
- Voice Activated Scheduling with Amazon Lex
- Schedule Tasks through app that will automatically add to group members’ calendars
- Chatbot where you can ask about hangout ideas
- Expand to other Calendars like Outlook, etc.
- Make calendars searchable with Amazon Kendra.
- Place for shared documents or plan creation
Week 1: Setup 🌅
- Decide frontend/backend teams
- Finalize tech stack
- Research/Learn Tech Stack
- Environment Setup
- Learn Git/Github
- Begin App Design with Figma
Week 2: More Preparation 💡
- Frontend:
- Finish Figma Design and Prototype by the end of week
- Learn React Native
- Backend:
- Start looking into the API’s
- Set up User Authentication
- Set up Database
Week 3/4: Coding ⚙️
- Frontend:
- Login/Sign Up Pages
- Home Page
- MyCalendar/Connect Calendar Page
- Shows schedule for current week
- Groups page
- Backend:
- Integrate Google Calendar API to display schedule in app
- Develop Group Feature
- Create groups, Join groups
- Start looking into how to find free time slots/developing algorithm idea
Week 5/6: Middle Stretch 💫
- Start Integrating finished backend features with finished frontend pages (Groups, User Auth)
- Frontend
- Groups Page
- Display all groups the user is in, including individual people the user has synced calendars with
- Individual Groups Page
- Shows synced calendar + each member and their calendar
- Would hide specific events, just show blocks of when time is occupied
- Shows Poll if applicable
- Schedule Meetup Page
- Can either pick a date range or find next best time
- If picking date range, will find all free slots and generate a poll
- Poll Page
- Shows all free time slots, anonymously vote
- Groups Page
- Backend
- Sync events on calendar based on free time slots
- Research how to incorporate academic deadlines into syncing and implement
- Poll feature
Week 7: Almost There ⏳
- Integrate finished backend features with finished frontend pages
- Finish all features
- Work on stretch goals if possible
- Frontend
- Finish all pages
- Backend
- Feature to add scheduled events to all group members’ calendars
- Poll feature
Week 8: Wrapping Up 🌙
- Finish backend/frontend integration
- Add finishing touches
- Finish stretch goals if possible
- Begin work on presentation
Week 9/10: Presentation Prep 🎬
- Prep for Presentation Night
- Finish Slides + Script + Demo
IDE: VSCode
Emulator: XCode or Android Studio
Wireframe: Figma
1st Choice Stack: MERN
- Frontend: React Native
- Backend: MongoDB + Express + Node.js
Backup: Flutter
- Frontend: Flutter
- Backend: Firebase + Dart
React Native:
- React Native Basics
- Environment Setup
- Environment Setup with Expo
- Build Full Stack App in React Native
- React Native Course
- React Native Tutorial
Flutter:
- Documentation
- Install Flutter on Mac
- Install Flutter on Windows
- Intro to Flutter/Dart
- Flutter + Firebase
XCode:
Android Studio:
MERN Stack Backend:
- Node + Express
- MongoDB tutorial for beginners
- What is MongoDB?
- Mastering Authentication in React Native
- Login Register Authentication in React Native with Node JS, Express JS and Mongo DB
APIs:
- Fetching Data from an API in React Native
- React Native Tutorial - POST Request
- React Native tutorial - API Call
- Google Calendar API with Node.js
- Postman Tutorial
- RapidAPI
- Google Cloud Natural Language API
Other Technologies for Finding Free Time Slots:
- GraphQL Course for Beginners
- GraphQL With React Tutorial - Apollo Client
- date-fns
- AWS Lambda
- Associating a Lambda function to your Amazon Lex v2 bot
- Amazon Lex: Validate Slot data with Lambda
Optional/Stretch Goals:
Git Cheat Sheets:
Resources for Design:
- Best App Design - copy and paste link if it takes you to forbidden
- Dribble - copy and paste link if it takes you to forbidden
- Color Palettes
- More Color Palettes
- Do's and Don'ts of Mobile App Design
Other Resources:
General Use
Command | Description |
---|---|
cd "Harmoni" | Change directories over to our repository |
git branch | Lists branches for you |
git branch "branch name" | Makes new branch |
git checkout "branch name" | Switch to branch |
git checkout -b "branch name" | Same as 2 previous commands together |
git add . | Finds all changed files |
git commit -m "Testing123" | Commit with message |
git push origin "branch" | Push to branch |
git pull origin "branch" | Pull updates from a specific branch |
- Mathew Biji
- Kartik Joshi
- Muhd Haque
- Leo dos Remedios
Kanchan Javalkar - Project Manager
Nirranjan Akilan - Industry Mentor