Inspiration
A member of our team has experience with financial technologies, so we were inspired by the nature of the challenge. We also were excited to work with new technologies and this was a project with many aspects that we had never touched before.
What it does
SecuriQuery is an efficient and performant search engine for indexing and querying a database of financial securities and their street IDs. SecuriQuery takes large data sets and makes them manageable by offering an easy way to search for matches on multiple street IDs siumultaneously, and assists in presenting the most relevant information by using a prioritization algorithm after the result of the query have been gathered.
How we built it
The database is PostgreSQL hosted on Microsoft Azure. The back-end is Python using the SQLAlchemy library to connect to the database and Heroku as the service hosting. The front-end is JavaScript using ReactJS and the Material UI library, and is also hosted using Heroku.
Challenges we ran into
While we definitely learned a lot, attempting to learn several different new languages and technologies slowed us down a bit. But we persevered, and it was necessary to achieve the level of optimization and efficiency that we wanted. Additionally, the weighting algorithm was difficult to get right. It was a struggle to find a balance between function and efficiency, but we were able to find an elegant and fast solution!
Accomplishments that we're proud of
Our weighting algorithm runs on the Python back-end after the results have been returned from the database. We used the SequenceMatcher method in the built-in difflib package to get a ratio of how closely the string matched. This, with the priority ranking, allows us to accurately rank our results without a significant slowdown!
What we learned
We learned a lot building this project. This was the first time we had worked with Heroku and having to deal with hosting both the frontend and backend on a domain, allowing the whole application to be available from anywhere at any time. This was the first time using PostgreSQL and connecting a database to a web app, as well as having to write SQL scripts while keeping efficiency in mind. We had never worked with Material UI before, and none of us are UX/UI developers, so designing the frontend was a learning experience for all of us. This was the first time using Microsoft Azure and hosting a database in the cloud. This ended up being much faster than trying to host it locally and the project may not have been possible without it. We also learned some useful team skills, like Pair Programming to quickly create an efficient weighting algorithm.
What's next for SecuriQuery
Our future goals include additional UI functionality, choices for different weighting algorithms, and a more efficient database implementation for easier scalability.
Built With
- azure
- fastapi
- heroku
- javascript
- materialui
- postgresql
- react
- sqlalchemy
- vscode

Log in or sign up for Devpost to join the conversation.