Project Info
Inspiration
The inspiration behind Settling stems from the real-life challenges faced by immigrants and refugees. We observed that many existing platforms offer generic information, but there’s a clear gap when it comes to _ personalized, long-term solutions _ . Immigrants encounter obstacles like language barriers, legal confusion, job market restrictions, and isolation. We wanted to create a tool that not only provides resources but grows with the user, adapting to their changing needs as they settle and integrate into a new country. Since many of us have personal experience dealing with immigration, from finding jobs to dealing with paperwork, this project is close to our hearts. It aims to solve many of the problems we and others we know have encountered.
What it does
Settling is a personalized immigration and integration assistant designed to guide users through every stage of their journey. It offers tailored support in several key areas: Personalized chatbot interface: Engages users with compassion, offering advice and answering questions. Job matching and career planning: Recommends job opportunities based on personal details such as visa status, education, skills, and location. Documentation assistance: Provides personalized guidance for legal paperwork, with interactive document summaries and next steps for visa processing. Educational resources: Recommends relevant courses and training programs to help users upskill for better job opportunities.
How we built it
We built Settling using a combination of cutting-edge technologies: Frontend/Backend: Developed with Reflex for scalability and flexibility. Database: Firebase was used for secure user authentication and storing personalized data. APIs: We implemented OpenAI’s GPT-4 and Google's Gemini Pro to provide a fully personalized experience from onboarding to job recommendations.
Challenges we ran into
One of the main challenges was integrating multiple APIs into one seamless user experience which proved tricky, as we had to align them to the user’s data without overwhelming the app’s performance. Additionally, fine-tuning the job-matching algorithm to account for visa complexities was a time-consuming process as well as fully personalizing career paths and document analysis.
Accomplishments we're proud of
We’re incredibly proud of the personalized job-matching and documentation assistance features. These offer practical and personalized help for non-tech savvy individuals, directly addressing some of the most stressful parts of the immigration process. We used Reflex to build a secure and scalable backend to protect sensitive user data, which was a major accomplishment.
What we learned
We learned a great deal about the complexities immigrants face beyond just paperwork—especially the difficulties in navigating job markets and connecting with community support. Some of our group members have gone through the same process, so a lot of what we already know was reinforced. On the technical side, we gained valuable experience in integrating multiple services and APIs, improving our skills in machine learning, natural language processing, and secure database management.
What's next
Moving forward, we plan to refine Settling based on user feedback from the hackathon. We want to expand the job-matching feature to include more industries and improve our algorithm to account for regional visa restrictions. We would also like to integrate a multilingual text-to-speech web socket based tool that will make user conversations more authentic. Additionally, we aim to broaden our partnerships with community organizations to create an even more robust support network to connect immigrants with employers. Long-term, we see Settling evolving into a tool that can be customized for use in various countries, adapting to the unique immigration policies and job markets worldwide.
Settling
Immigrants and refugees face numerous challenges when settling in a new country, including language barriers, legal complexities, and difficulties in finding suitable employment and support networks. While existing resources provide general information, there's a clear need for a more personalized, comprehensive, and long-term solution. Our app aims to fill this gap by offering tailored assistance throughout the integration process, helping immigrants and refugees thrive in their new home in the long term.
Installation
- Add API keys to ENV file
- Add
firebase-credentials.js pip install -r requirementsreflex run
TODO
- delete firebase and use the same project as gemini
- refactor lazy loading
- fresh ui
- add translation feature
Analysis
View
Metric
- 3
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- FastAPIIn code
- FlaskIn code
- OpenAIIn code
- PythonIn code
- RedisIn code
- FirebaseClaimed
- Google GeminiClaimed
5 of 7 appear in the indexed code. 2 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
67 KB
Source files
23
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
PopsicleSnow/Settling
39 files · 4.7 MB · @ f7eb744
Structure
Application logic
19 files · 49%Domain rules, services and shared utilities.
Background jobs
2 files · 5%Work run outside a request: tasks, workers and schedules.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Python97%
- XML2%
- Markdown1%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
requirements.txt
pypi · 116- alembic
- annotated-types
- anyio
- apify_client
- apify_shared
- backports.tarfile
- bidict
- blinker
- build
- CacheControl
- cachetools
- certifi
- cffi
- chardet
- charset-normalizer
- click
- cryptography
- distro
- +98 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.