5 answers
Asked
808 views
I am looking to develop a basic mentoring and tutoring app that can match volunteers to students. Any advice on this & programs/algorithms to use for this?
#evelopment #software-development #software-industry #developer #software-development #coding #code #app #appdevelopment #app-development #programming #computer-software #algorithms #codinglanguage #language
Login to comment
5 answers
Updated
Catherine’s Answer
Paridhi, that sounds like a great idea! Ruby on Rails is a framework that is good for developing a full-functioning web app quickly, and Ruby is a high-level language that is easier to work with when you are new to programming.
Updated
Wesley’s Answer
This is an excellent idea for an app!
Some things to keep in mind for the development of any program are:
What goals do you want to accomplish?
What user stories are there (what would it look like to be a user (volunteer or student) using this)?
What technologies are best suited for your use case?
These questions help orient your development and give you a user driven approach.
The first question about goals helps to focus your efforts and assists when you're making decisions. Think about what it is you want the end product to look like. Think about what you want the impact to be.
The second question is more specific and asks you to put yourself in the shoes of those that will use your app. What do you want them to see and experience when using it? What goals do they have and how will you help them accomplish them?
The last question builds upon the previous two by looking into the implementation. An app doesn't necessarily have to be on a phone. It could be a website, or even integrated into a social media service with an API, perhaps. Then, once you've settled on how it should look, explore the different technologies needed for that area (Java/Kotlin for Android, HTML/CSS/JS for web, etc).
Those were more broadly applicable ideas. For your idea specifically, there are additional things that may be important to note.
For example, matching volunteers and students means that you may need to store data on people, such as name and location data. When storing data, you must consider security and privacy, in addition to the physical need to store and retrieve that data. Also consider that there are laws surrounding data collection for those under 13, so if your app concerned it, that demographic of students - or even all students - could be reached through their parents/guardians. If your app does not collect the data for this, then consider how the approach will work. Maybe this is something built in collaboration with your school so that you do not strictly need to store and track personal data.
For some implementation ideas, if you're going to develop a typical app, one well established route is to go with Android. Android develops in either Java or Kotlin and you can use Android Studio with tons of tutorials for app development. Without knowing any specifics of how matching is done between volunteers and students, I can't say I can recommend any specific algorithm. If the matching is important, consider what data you can use when determining how matching is done and refer back to your goals.
My last bit of advice is to speak with your potential users! Ask around and see what people think of the idea and if they have anything to contribute. I'm thinking that you have personal experience that related to why you want to develop this app, so compound that with what other people think. Sometimes, you will discover needs that you did not realize were important. Find stakeholders who can be involved in development and aid you along the way; people who are invested in your success are powerful resources!
Some things to keep in mind for the development of any program are:
What goals do you want to accomplish?
What user stories are there (what would it look like to be a user (volunteer or student) using this)?
What technologies are best suited for your use case?
These questions help orient your development and give you a user driven approach.
The first question about goals helps to focus your efforts and assists when you're making decisions. Think about what it is you want the end product to look like. Think about what you want the impact to be.
The second question is more specific and asks you to put yourself in the shoes of those that will use your app. What do you want them to see and experience when using it? What goals do they have and how will you help them accomplish them?
The last question builds upon the previous two by looking into the implementation. An app doesn't necessarily have to be on a phone. It could be a website, or even integrated into a social media service with an API, perhaps. Then, once you've settled on how it should look, explore the different technologies needed for that area (Java/Kotlin for Android, HTML/CSS/JS for web, etc).
Those were more broadly applicable ideas. For your idea specifically, there are additional things that may be important to note.
For example, matching volunteers and students means that you may need to store data on people, such as name and location data. When storing data, you must consider security and privacy, in addition to the physical need to store and retrieve that data. Also consider that there are laws surrounding data collection for those under 13, so if your app concerned it, that demographic of students - or even all students - could be reached through their parents/guardians. If your app does not collect the data for this, then consider how the approach will work. Maybe this is something built in collaboration with your school so that you do not strictly need to store and track personal data.
For some implementation ideas, if you're going to develop a typical app, one well established route is to go with Android. Android develops in either Java or Kotlin and you can use Android Studio with tons of tutorials for app development. Without knowing any specifics of how matching is done between volunteers and students, I can't say I can recommend any specific algorithm. If the matching is important, consider what data you can use when determining how matching is done and refer back to your goals.
My last bit of advice is to speak with your potential users! Ask around and see what people think of the idea and if they have anything to contribute. I'm thinking that you have personal experience that related to why you want to develop this app, so compound that with what other people think. Sometimes, you will discover needs that you did not realize were important. Find stakeholders who can be involved in development and aid you along the way; people who are invested in your success are powerful resources!
Updated
Deepak’s Answer
One way of doing this thing is keyword/tags matching. You have two users Volunteers and Students. Volunteers can subscribe to topics( keywords ) as per their skill set. Student can write their question, but they will not know which category this will fall. So you need to write a keyword extraction algorithm which will parse the student text and generate keyword or tags. Once you have keywords from student question text, then you can match the Volunteer ( who subscribed to that keyword ).
Above is very high level idea to implement it. So you can look into various ways to develop this keyword extraction algorithm( https://monkeylearn.com/keyword-extraction/ ). Machine learning (NLP) could be one of the way.
Learn about various ways of doing keyword extraction.
Explore you development platform( For example Java Full stack + Android/IOS )
Above is very high level idea to implement it. So you can look into various ways to develop this keyword extraction algorithm( https://monkeylearn.com/keyword-extraction/ ). Machine learning (NLP) could be one of the way.
Deepak recommends the following next steps:
Updated
Thays’s Answer
Can I help you ?haha
Basically you can put in the paper everything that u want to do, draw the project in one paper if possible to you see better and until create some flowchart for put this.
After this choice the language, libraries that you want to implement this, search about it also this help a lot for give more ideas! React, Three.js, Tailwindcss are my favorites then well, see what will be good! And well start create! It’s one process need some more stuffs that u know I think but basic go this way that everything works!
Basically you can put in the paper everything that u want to do, draw the project in one paper if possible to you see better and until create some flowchart for put this.
After this choice the language, libraries that you want to implement this, search about it also this help a lot for give more ideas! React, Three.js, Tailwindcss are my favorites then well, see what will be good! And well start create! It’s one process need some more stuffs that u know I think but basic go this way that everything works!
Updated
Amy’s Answer
Wesley already provided a lot to think about... a few more things to add from my perspective:
1. Related to Wesley's comment about defining user stories, I would suggest viewing a few related YouTube video from Jeff Patton on story mapping and user personas - this may help you with the fundamentals of documenting that user experience before you start building.
2. There are a lot of mentor app code repos publicly available on Github - I would recommend searching and browsing through those repositories and looking at the technologies they use to see if any of them resonate with you / your interests / your goals.
1. Related to Wesley's comment about defining user stories, I would suggest viewing a few related YouTube video from Jeff Patton on story mapping and user personas - this may help you with the fundamentals of documenting that user experience before you start building.
2. There are a lot of mentor app code repos publicly available on Github - I would recommend searching and browsing through those repositories and looking at the technologies they use to see if any of them resonate with you / your interests / your goals.