PADONG is a community platform that resolves information inequality among students in college life in the US.
‘PADONG’ means wave in Korean. We are looking to solve ‘10. Reduced Inequalities’ in United Nations Sustainable Development Goals.
We believe in the value of each person's own color and sound, the ‘human wave’. It is what we call personality or perspective.
Just like how different instruments make up an orchestra, Just like how different colors create a painter’s palette,We believe that different human waves complete the beautiful world.
But sometimes differences lead to discrimination and inequality. Therefore, as if tuning instruments to prepare a great performance, as if combining colors to complete a masterpiece, we try to make a more beautiful world by understanding each other's differences through communication.
PADONG chose the timing of tuning as the moment when we took the first step toward becoming an adult. All members of the Developer Student Clubs will probably remember the moment we entered college. It is the moment when we meet people from various origins and collide with more diverse human waves.
We want to help that step be filled with hope, like warm sunlight and beautiful sound. So the targets of PADONG are not only college students but also young adults who are not going to college or are preparing to go to college.
We create the PADONG, In this way, with hope for a beautiful world. We create a platform where everyone can share their own unique perspective and create an ocean of human waves. Through PADONG, we hope every human wave will create a beautiful ripple that will have a long-lasting impact on each other's lives.
PADONG provides successful college life know-how from senior students who have experienced and felt directly, not formal information provided by schools. Also, you can use many features with PADONG by integrating functions of fragmented services that are useful for college life.
For example,
- Ask if your class schedule is doable to "Reddit"
- Search the location of a building with your classroom in "Google Map"
- Purchase a used calculator in "used marketplace page in Facebook"
- Search evaluations of professors in "Rate My Professors"
- Look up classes and make a timetable at "Courseoff"
Without having to use such fragmented services, PADONG provides such all services above in one application.
PADONG has 5 key features:
Real-time Chat is a channel which users can communicate directly. It can be used not only for a group chat room of lecture, but also for personal communication. |
||
![]() |
![]() |
![]() |
Dart | Flutter |
---|---|
![]() |
![]() |
Dart | Firebase | Github |
---|---|---|
![]() |
![]() |
![]() |
- Git: If you have not installed Git, you click Git and install it.
To run PADONG, two requirements below are needed to be installed.
-
Click the Android Studio link above, download and install.
-
Run Android Studio and install Flutter plugin.
- Launch Android Studio application.
- If you just installed Android Studio, Choose Configure -> Plugins.
- If you are not the case, Choose File -> Settings -> Plugins.
- Search Flutter Plugin and install it.
- Restart Android Studio application.
-
Download Flutter SDK from Git repository:
git clone https://github.com/flutter/flutter.git -b stable
-
Update your path
-
Windows
- From the Start search bar, enter ‘env’ and select Edit environment variables for your account.
- Under User variables check if there is an entry called Path:
- If the entry exists, append the full path to
flutter\bin
using;
as a separator from existing values. - If the entry doesn’t exist, create a new user variable named
Path
with the full path toflutter\bin
as its value.
- If the entry exists, append the full path to
-
Mac
-
Determine the directory where you placed the Flutter SDK. You need this in Step 3.
-
Open (or create) the
rc
file for your shell. Typingecho $SHELL
in your Terminal tells you which shell you’re using. If you’re using Bash, edit$HOME/.bash_profile
or$HOME/.bashrc
. If you’re using Z shell, edit$HOME/.zshrc
. If you’re using a different shell, the file path and filename will be different on your machine. -
Add the following line and change
[PATH_TO_FLUTTER_GIT_DIRECTORY]
to be the path where you cloned Flutter’s git repo:export PATH="$PATH:[PATH_TO_FLUTTER_GIT_DIRECTORY]/flutter/bin"
-
Run
source $HOME/.<rc file>
to refresh the current window, or open a new terminal window to automatically source the file. -
Verify that the
flutter/bin
directory is now in your PATH by running:echo $PATH
Verify that the
flutter
command is available by running:which flutter
-
-
-
Run flutter doctor.
flutter doctor
-
Open a terminal and clone PADONG project:
git clone https://github.com/padong4284/padong-flutter.git
-
In PADONG project directory, download dependencies by typing following command:
flutter pub get
-
Run Android Studio, click open an existing project and open PADONG's project directory.
-
In Android Studio, click File -> Settings -> Languages & Frameworks and set Flutter SDK path as Flutter SDK directory you have cloned.
-
On top bar in Android Studio, select virtual device you would like to use and run by clicking run icon Or build by clicking build -> Flutter -> build APK or build IOS and move the build output to your smart phone and install it.
-
Install APK or IPA file you built using Android Studio or Download PADONG from Google Play or App Store.
-
Run PADONG app.
-
Tap "Sign Up" button, fill out all required fields, and tap "->"(next) button on the screen.
-
Then, you will be signed in! Enjoy PADONG :)
PADONG is designed based on the Clean Architecture that follows the SOLID principle. Before designing the architecture, we analyzed the commonalities between various use cases of PADONG. (Wiki, Board, Timetable, Map, Chat)
As a result, we realized that each use case could be represented in a tree structure. For example, the Board is a parent of Posts, and each Post has Replies as children. Based on this insight, we abstract all data structures into Node and implement use cases as interactions between nodes. So, we defined Node as the top-level component.
Each node has the parent node’s Id, and can access children using its own Id. This can be used in ways such as fetching posts from a bulletin board or fetching change logs from a wiki. Any use case similar to this can be abstracted with the getChildren function. Other CRUD business logics are also abstracted as methods inside the node. This allows each subclass of Node to focus on its own responsibility.
We chose Firestore to manage the data of Node. Because
- Data isn’t simply stored, it can be organized into collections depending on use cases,
- Using flexible and complex queries, we can manipulate data while taking advantage of the characteristics of Node.
(Click to see XD on web browser)
On the other hand, in the user interface area, it was important to provide native performance while supporting multiple platforms.Because, the vision of PADONG is a more beautiful world that solves Reduced Inequalities. And the way to realize the vision is that many people share their own perspectives and understand each other.So, PADONG should be available to as many people as possible.
Flutter fits our purpose perfectly, and thanks to Dart is an object-oriented language, it was also suitable for implementing the Node system we designed.In addition, the documentation and ecosystem are excellent, so even though all team members are new to Flutter, we can quickly adapt and develop PADONG.
Furthermore, thanks to Flutter’s rich features, it was possible to express oscillating waves and the rotating and spreading search button. And we can maintain a simple and unified design within various features.
We were able to implement all the various features of the PADONG in just 6 weeks, thanks to Firebase, which has all the necessary infrastructure, and Flutter, which can implement both the Node system and widgets we designed.
PADONG is targeted at people in the transitional stage of adulthood. Because we hope that those people recognize the world beautifully and make a more beautiful world.
Therefore, we have prepared a separate sign-up option for people who are not attending college or who are high school students. But this is not enough for the vision of PADONG.
First, we will expand our users not only to universities in the US but also to universities around the world. After that, we intend to expand the targets. So, any group that shares the schedules, and manages the information about common interests can become the wave source. Such as high schools, companies, and local communities, etc.
Internally, we plan to make a lecture database for each semester by linking the timetable with each university’s database. And we will reinforce the search service to manage data that will increase. Furthermore, not only lectures but also events will be shared,so that non-university communities can manage a common schedule.
In addition, we are preparing to support local used trading by connecting the review system and chat that currently exists in PADONG and using Google Maps.We hope it helps people trade things in a sustainable way.
We have made detailed monthly plans.
Month | Plan |
---|---|
March | The beta version will be uploaded to the store until March 31, the deadline for the Solution Challenge. |
April | We will resolve all issues registered on GitHub. +Since Flutter 2.0 supports Web Application, we can plan to expand to the web. |
May | We plan to add the second-hand trading service that is currently in development and strengthen the search engine. |
June | We plan to link the timetable and each university’s database. |
July | We will expand the service step by step while improving the service according to the feedback. |
Ultimately, PADONG will create a world where no one is marginalized due to information inequalities.
Name | GitHub | |
---|---|---|
Taejun Jang | ||
Daewoong Ko | ||
Hyunsik Kim | ||
Seongbin Hong |
Apple, the Apple logo, iPhone, and iPad are trademarks of Apple Inc., registered in the U.S. and other countries and regions. App Store is a service mark of Apple Inc.
Google Play and the Google Play logo are trademarks of Google LLC.
Copyright (C) 2021-2021 Taejun Jang <[email protected]> - All Rights Reserved.
PADONG can not be copied and/or distributed without the express permission of Taejun Jang, Daewoong Ko, Hyunsik Kim, Seongbin Hong