development

How can I contribute to an open source project?

Please select all the ways you would like to hear from Harmony project:

How can I contribute to an open source project?

How can I contribute to an open source project?

Your guide to contributing to open source projects

Are you feeling intimidated by the thought of stepping into the world of open source contributions? You don’t have to be an expert to help.

You might find this guide helpful: https://opensource.guide/how-to-contribute as well as the Reddit Opensource community.

1. Start small, think big:

  • Don’t feel pressured to tackle the most complex issues right away. Look for smaller tasks that align with your skills and interests.
  • These could be fixing typos in documentation, improving code readability, or adding simple features that haven’t been prioritised yet.
  • Remember, every contribution, no matter how small, adds value to the project.

2. Find your niche:

  • Choose a project that aligns with your passions and expertise. This engagement will fuel your motivation and make the learning curve more enjoyable.
  • Explore projects you already use and appreciate, or discover new ones that pique your curiosity.

3. Embrace the learning curve:

  • Contributing to open source is a fantastic way to learn and grow as a developer.
  • Don’t be afraid to dive into unfamiliar codebases. Take your time, explore, and don’t hesitate to ask questions if you get stuck.
  • Even experienced contributors started as beginners—everyone’s been there!

4. Embrace imperfection:

  • Your first contribution might not be perfect, and that’s perfectly OK!
  • The open source community values learning and collaboration. Experienced developers are often happy to provide feedback and guidance to help you improve.
  • Be open to constructive criticism and use it as an opportunity to learn and refine your skills.

5. Celebrate the wins:

  • Every contribution, no matter how small, is a victory. Take pride in your accomplishments and celebrate your progress.
  • Each contribution builds your confidence and skills, paving the way for even greater contributions in the future.

Remember: Open source communities thrive on diversity and inclusivity. Your unique perspective and skills are valuable, so don’t be afraid to share them with the world. Take that first step, start small, and watch your contributions grow alongside your confidence. Together, we can shape the future of open source, one contribution at a time!

Ideas for open source projects you can contribute to

  • Harmony - we are always on the lookout for anyone who can work on back end (API), front end, or NLP side of Harmony! https://github.com/harmonydata/harmony
  • spaCy - one of the best known NLP libraries
  • Country Named Entity Recognition - a lightweight Python library for recognising country names in unstructured text and returning Pycountry objects. Very simple and a good library to start with on your open source journey pip install country_named_entity_recognition
  • Drug Named Entity Recognition - a lightweight Python library for recognising drug names in unstructured text pip install drug-named-entity-recognition
  • Fast Stylometry - a Python library for identifying the author of an unknown text (forensic stylometry). pip install faststylometry. Read tutorial.

How can I contribute to Harmony?

Read our guide to contributing to Harmony.

Harmony is a powerful data harmonisation tool which uses natural language processing (NLP) to bridge the gap between diverse research studies, automatically comparing and grouping similar items across datasets. Here are a few ways you can get involved in the project:

1. Get coding

Harmony’s back end is built in Python and the front end is in React. There is also an R library. Whether you’re a seasoned developer or a coding newbie, there’s a place for you. You can:

  • Browse open issues and pull requests and find a challenge that sparks your interest and contribute your unique skills.
  • Help maintain the existing code: Fix bugs, improve documentation, and suggest optimizations.
  • Develop new features: Take Harmony to the next level by proposing and implementing innovative solutions.

2. Work on the NLP models

The heart of the magic of Harmony is the large language models that it depends on, taken from the Hugging Face Hub. You can contribute by:

  • Exploring and testing NLP algorithms: Experiment with different NLP techniques to improve Harmony’s accuracy and efficiency.
  • Developing new language models: Try training your own LLM specialised in psychology.
  • Contributing to the NLP community: Share your insights and findings with other NLP enthusiasts, fostering a collaborative spirit.

The deeper we understand language, the better we can harmonise the world’s research data.

3. Publicise Harmony

Harmony’s mission thrives on awareness and accessibility. You can be a champion for open data by:

  • Writing blog posts and articles: Share your experiences with Harmony and inspire others to join the cause.
  • Creating tutorials and videos: Make Harmony approachable for beginners and showcase its potential to a wider audience.
  • Promoting Harmony as an open source project on social media: Share the love on Twitter, Facebook, and beyond, using the hashtag #OpenSourceHarmony.

Ready to join the Harmony open source project? Head over to our GitHub repository at https://github.com/harmonydata/harmony, explore the free web tool at harmonydata.ac.uk/app, and dive into our documentation. We’re waiting for you with open arms (and open-source code)!

Bonus tip: We also have a Docker container available, making it even easier to get started with Harmony. Just check out our documentation for more details.

Related Posts

Integrating with Harmony

Integrating with Harmony

Sending data from another website to Harmony using Javascript We have exposed functionality for external websites to integrate with Harmony and add an “import to Harmony” button, either generated in Javascript or in Python. Create an Instrument object with at least an instrument_name and questions property in JSON - the questions must have a question_no and question_text properties eg: { "instrument_name": "Smoking behaviour", "questions": [ { "question_no": "1", "question_text": "Do you currently smoke or have you ever smoked?

Pydata on 2 July

Pydata on 2 July

Harmony at PyData London - 86th Meetup Update: you can download the slides from the presentation here Topic: NLP and generative models for psychology research Thomas Wood will present our work on Harmony, harmonydata.ac.uk, which is a free online tool that uses generative AI and LLMs to help psychologists analyse datasets. It uses Python, Pandas and HuggingFace Sentence Transformers to find similarities between questionnaires. Psychologists and social scientists often have to match items in different questionnaires, such as “I often feel anxious” and “Feeling nervous, anxious or afraid”.

Signup to our newsletter

The latest news on data harmonisation project.

Please select all the ways you would like to hear from Harmony project:

You can unsubscribe at any time by clicking the link in the footer of our emails. For information about our privacy practices, please visit our website. We use Mailchimp as our marketing platform. By clicking below to subscribe, you acknowledge that your information will be transferred to Mailchimp for processing. Learn more about Mailchimp's privacy practices.