Inspiration
We aim at improving the productivity and efficiency of work and reducing the pain of switching between different devices while reading learning materials or writing paper. Although we have cloud drives or AirDrop to help us transmit documents between devices, it is always inconvenient to carry everything with you but only busy with syncing files and wasting time.
What it does
This app allows users to synchronize files or materials between devices, getting quick access to every document they have. Users can save what they have done on one device and get it synchronized on other devices with the latest progress. Anyone can simply drag and drop his/her unfinished essays, or readings to other devices and continue to work seamlessly and fluently.
How we built it
Since our mission is to provide efficiency to everyone, we want our app available on all major platforms. So we choose to develop it with 2 major cross-platform frameworks -- Flutter for developing mobile clients and Electron for the desktop users.
In the backend, we use Node.js and Express to set up a fast and simple prototype. And we make use of socket.io's powerful message broadcasting to create a notification push service for all platforms. In addition, we use lowdb to boost our development without worrying too much about database setup.
Challenges we ran into
- Developing in different native environments is challenging. Although Flutter and Electron are powerful cross-platform frameworks, we still need to deal with some low-level implementation due to the differences in platforms, like the different file system under Android and iOS, different native packages for loading, method calls and socket network connections.
- Backend logic is complicated.
Accomplishments that we're proud of
- Our application can work seamlessly in Android, iOS, OS X and Window.
- Continuously work on different devices among platforms.
What we learned
- Cross-platform development / Multi-end development with
electronandFlutter. - Using Socket.IO to send notifications to clients.
What's next for Seamless Space
We want to deploy it on FireBase to enhance the performance and integrate with Flutter better. Also, we want to support more general files including media(photos or videos), latex to give better support for students in different majors.
Also, we are considering introducing the concept of workspace in our apps so that users can bundle some files up and synchronize or transfer multiple windows together from one device to others.
Finally, we want to support a friend system to allow users to share sessions with classmates or friends so that teamwork can be much easier and convenient.
Log in or sign up for Devpost to join the conversation.