Opportunist — Curated opportunities in technology
Here I describe the journey of my project, Opportunist (site is down currently, apologies for that). This blog contains everything from how I arrived at the idea to build such a web app to all the tools and technologies I used to build it.
The Purpose
While scrolling through LinkedIn, it often happens that we come across posts on people being selected for some mentorship program and think ‘wish I had applied for that on time’. With me, this mostly happened because I wasn’t aware of the many programs which I was eligible for and could have applied. That’s when the idea for building a web app dedicated specially for this purpose struck me. This would save the user’s time by serving only those opportunities which are relevant to them.
What is Opportunist
Opportunist is a one stop location for all tech-enthusiasts to find quality programs they are eligible for, in no time. It offers the following:
- A search tool which lets you filter the opportunities according to your requirements.
- Thoroughly explored and curated blogs to help users learn more about programs or use as a guide for their application.
- A contribution section where people can add the opportunities they are aware of to help others.
This web app has been named so, since I do not want any student like me to miss out on golden opportunities that could kick start their careers in technology, just because they weren’t aware of the program. The opportunities include open source programs, mentorship programs and scholarship programs for now. You enter some basic details and get curated results of programs you are eligible for.
Technologies used
Frontend — ReactJS was used to build the components part of the frontend of the website. The essential components included the navigation bar, dropdowns, information cards and suggestion form among others. Data was passed from the parent to the child component via props, and from child to the parent via call back functions.
Database — Following that, the database was created on MongoDB Atlas and data of various top quality opportunities with all necessary details like name, description, application start/end date, stipend, target gender, etc was added.
Backend — Then the server side was built using NodeJS and ExpressJS and was made to run on port 5000. Basically, at this port the data coming from the database is displayed in JSON format.
Connections and state management — Once that was done, the fetched data had to be connected to the client side. This was done using XMLHttpRequest. Then using React Hooks for state management, the data was displayed on the client side website.
Query based fetching was also done with the help of conditional rendering of data in ReactJS itself. Only those opportunities were fetched which matched the user’s entered location, opportunity type, gender and education.
Future scope
I believe there is a lot that can be done to scale up this web app and make it more functional. There are umpteen opportunities and programs waiting to be added to the database, which will help more people all over the world learn about programs in their region. Moreover, the user experience on this app can be improved to great extents.
Thank you for taking the time out to learn about my project, if you wish to contribute you can do so in the GitHub repository below: