Welcome to KnowNative! This is an open-source project aimed at building a language learning app focused on reading comprehension. With KnowNative, learners engage with real-world articles written by native speakers through a personalized study experience with automatically generated flashcards, inline annotations and context-driven translations.
KnowNative was originally created by Abigail Dawson, who now oversees the continued development of the project by volunteer Core Contributors and the broader open-source community. Whether you're new to open-source or an experienced contributor, we’d love your help in making this project a success!
Our tech stack
You do not need to be proficient in all of these technologies to contribute! We have front-end, back-end, beginner and no-code issues for contributors of all experience levels.
- Node
- Express
- React
- Vite
- MongoDB
- Sass
To contribute to KnowNative, you'll first need to run the project locally in order to make changes and submit your work. To run KnowNative locally, follow these steps:
First, fork this repository by clicking the Fork button in the top right of this page. This creates a copy under your GitHub account so you can make changes and submit pull requests.
Then, clone your fork to your local machine:
# Replace <your-username> with your GitHub username
git clone https://github.com/<your-username>/knownative.git
cd knownative
cd client
npm i
cd server
npm i
Create a new file named .env
inside the server directory and add the following variables:
DATABASE_URL=<your-mongodb-connection-string>
GOOGLE_TRANSLATE_API_KEY=<your-google-translate-api-key>
MONGODB_URI
contains the connection string for MongoDB. Learn how to connect.GOOGLE_TRANSLATE_API_KEY
contains the API key for sentence translations. Get a key.
cd client
npm run build
npm run start
cd server
npm run dev
KnowNative can only improve with fresh perspectives and creative insights from contributors! We welcome any suggestions, fixes and improvements that can make KnowNative an even better resource for learners.
-
Look for an issue – Check out the issues tab for something to work on. If you’re new, look for issues labeled “good first issue.”
-
Comment on the issue – Let us know if you’d like to work on it so we can assign it to you.
-
Fork the repository – Click the Fork button at the top right of this page to create a copy under your GitHub account.
-
Clone your fork – On your local machine, run:
git clone https://github.com/<your-username>/knownative.git
cd knownative
- Set the upstream remote – This allows you to pull in the latest changes from the main project.
git remote add upstream https://github.com/ORIGINAL-OWNER/knownative.git
- Switch to the develop branch – All new contributions should be based on
develop
, notmain
.
git checkout develop
git pull upstream develop # Ensure you have the latest changes
- Create a new branch – Always work on a new branch from
develop
. Name your branch something related to the issue you're working on; for example,fix-button-bug
.
git checkout -b fix-button-bug
-
Make your changes – Follow coding best practices and add helpful comments as needed. Put yourself in the shoes of someone who will come along later and build on your work.
-
Commit and push your changes to your forked repository:
git add .
git commit -m "Fix button alignment issue"
git push origin fix-button-bug
- Keep your branch updated – If changes have been made in develop while you were working, update your branch before submitting a PR:
git checkout develop
git pull upstream develop
git checkout fix-button-bug
git merge develop # Merge the latest changes into your branch
git push origin fix-button-bug
- Create a Pull Request (PR) against
develop
:
- Go to your forked repository on GitHub (https://github.com//knownative).
- Click "Contribute" → "Open pull request."
- Ensure you’re merging your branch into the original project’s
develop
branch (notmain
). - Add a clear title and description for your changes.
- Click "Create pull request." 🎉
- Wait for review! – We will review your PR and may suggest improvements.
As the creator of KnowNative, I am eager to collaborate with others who are excited about this project and are looking to contribute to on a more regular and consistent (volunteer) basis. We currently have a small team of Core Contributors who are innovating behind the scenes to bring high quality features and exceptional user experience to KnowNative. Read more here: Core Contributors.
Becoming a Core Contributor is an excellent way to gain real-world experience working with a team and add to your own portfolio or resume, all while being a part of a project you're passionate about! I'm currently open to Core Contributors with skills in:
- UX/UI research and design
- Software development
- Branding, social media and marketing
- Those with a special interest in linguistics and language learning - if you'd like to contribute, I'd love to hear from you!
Core Contributors benefit from the following:
- Special recognition on our website, with your image, bio and professional/social links
- Experience working solo or in small groups
- Contributing to the long-term vision of the KnowNative project
To be considered a Core Contributor of the KnowNative project, developers must commit to submitting one meaningful PR per month and attend at least one team meeting or 1:1 check-in per month. Participation is voluntary, and these requirements are in place to ensure harmonious collaboration among team members who are serious about the project. There is no minimum commitment for hours/week or number of months, and all experience levels are welcome.
To chat about becoming a Core Contributor, please reach out to me on LinkedIn. Please include something in your message about how your interests align with the project's mission.
There are several resources available to you to reference as you work on the KnowNative project:
- KnowNative Project Roadmap - Learn about where the project is headed next.
- Entity Relationship Diagram (WIP) - map of data entities in KnowNative and how they are related; provides a birds eye view of how the project features fit together.
- Source Code Guide - This guide is for developers working on the KnowNative project, designed to orient you to the source code so you can understand how to navigate the file structure, find what you’re looking for, and put all the necessary pieces together when working on features and fixes.
- SAAS Fundamentals - Get up to speed on Sass and SCSS syntax. It assumes no prior knowledge with Sass, and covers many of the core features that we'll be using and building upon in Know Native.
- CSS Style Guide (WIP) - Overview of our CSS rules & best practices. Note: KnowNative is in the process of migrating from CSS to SASS & BEM. This guide is for reference only, and not fully implemented.
Have questions or need help? Join our community!
- 💬 Discord: Coming Soon!
Distributed under the MIT License. See LICENSE.txt
for more information.
Abigail Dawson · LinkedIn · [email protected]