Metro Community Partners wants help entrepreneurs to connect organizations in California. These entrepreneurs need help to run their business better, while the organizations provides all kinds of services (such as training, workshops and coaching, etc,). There is a gap between the connection, entrepreneurs may only able to ask friends about resources nearby, so Centro is here to help.
What it does
Once an entrepreneur landed on our website, he/she can type in the business needs, and answer questions about the help he/she needs. Our whole question list is not present at the beginning, instead, depends on the answer to the previous question, our website will calculate the number of organizations match the criterion. We've set a threshold, if the number of left organizations is smaller than the threshold, we will stop asking more questions and return the result list to the user. Also, for the result list, there will be a map showing the locations of the left organizations.
How we built it
For this project, we split our team into 3 groups:
The frontend uses jquery and js to build a set of websites, server will connect frontend and backend data model. Data model processes the data storing and data matching. In order to fulfill the requirment of scalability, we tried to modulize the process as much as possible. The frontend would only access the server's interfaces and the server would only access our data DAO(data access interface) when dealing w/ data. The process we built is basically a filter job. The filtering is done with 2 steps:
- Keywords matching: Done by using nltk: synonym and tokenization - Qestion filtering: Done by using entropy and pattern matching
On the server side, we use flask to handle the connections. The dataflow through the system is mainly constructed with Json format, which is maintainable and reusable. Therefore, our system can achive the expectations on scalability, reusablity and robustness. Our customers can only change the data to imrove and maintain the process.
Challenges we ran into
- The design of questionnaire is the first problem. How to design the questions which make our customer easy to understand. How to design the question order based on previous answer.
- The connection of front end and backend.
- How to filter the database based on the answers.
- How to dig users' requirements from their own story.
Accomplishments that we're proud of
Built a creative platform that helps entrepreneurs understand the needs, address the requirements, and provide all available resources & services.
We spent 24 hours to build the prototype, but we add 4 new features within last two hours!!!
What we learned
- Design-driven development
- Python-based web-application development w/ usage of bootstrap and JS
- Scale the project with equivalent (or even better) performance
- Pair programming as well as team cooperation
What's next for CentroLava
Currently the app was made with various service providers that are based in california and it can be scaled to include different regions and different domains The credibility of app can increased by including crowdsourcing ratings and reviews