Skip to content

rootski-io/rootski

Repository files navigation

breakdown-svg


rootski-ci codecov

Slack sphinx ClickUp YouTube Playlist

All Contributors

📣 Welcome to the rootski codebase!

This is the codebase for the application running at rootski.io.

🗒 Note: you can find detailed information about the architecture/tech stack, onboarding/contributing, general full-stack development training resources and more on our knowledge base.

rootski is a full-stack application for studying the Russian language by learning roots.

rootski uses an A.I. algorithm called a "transformer" to break Russian words into roots. rootski enriches the word breakdowns with data such as definitions, grammar information, related words, and examples and then displays this information to users for them to study.



How is the rootski project run? (Hint, click here to get involved 😃)

rootski is developed by volunteers! Emojis represent types of contributions, (emoji key)


Isaac Robbins

💻 🚇

Josh Abrahamsen

🚇

Eric Riddoch

🧑‍🏫 💻

Ryan Gardner

💼

Joe Drapeau

💻

Ethan Walker

💻

Isaac Z Tai

👀

Adam Lenning

️️️️♿️

Above all else, rootski is a platform for learning and mentoring anyone with an interest in

  • frontend/backend development
  • developing data science models
  • data engineering
  • analytics
  • MLOps
  • DevOps
  • UI/UX design
  • product design
  • building a SaaS product that handles real customer transactions (note, we're aware of GDPR and data privacy regulations and do not expose the subset of customer data that is sensitive to contributors)
  • running a business

The best way to learn to write production-ready software is to... write production-ready software 🤣. If one of these describes you, you may really enjoy contributing some pieces to rootski,

  • you are inexperienced at writing software, modeling, doing analytics, etc., but you would love to learn how it is done--ideally with the guidance of some really experienced, friendly mentors
  • you work in some area of tech for you day job and want to explore areas to keep growing, but you don't necessarily want to build an entire SaaS product yourself just to learn about a handful of sub-parts of that

Engineers learn a lot by seeing examples of how things are built. The difficulty there is that you typically have to join a company to see the inside of a large SaaS product. rootski is "built in the open" so that anyone interested in software or data science can see a fully working example of an SaaS/AI product built with industry best practices.

If you're willing to learn, we'd love to have you on our team! You can learn how to get started on our knowledge base.


Contributors who have onboarded and contributed features

  • Eric Riddoch - Been working on rootski for 3 years and counting!
  • Ryan Gardner - Helping with all of the legal/business aspects and dabbling in development
  • Isaac Robbins - Learning and building experience in MLOps and DevOps!
  • Josh Abrahamsen - Experienced in SDET/DevOps/Azure looking to gain experience in more languages and technologies.

Friends

Completed a lot of the rootski onboarding and chat with us in our Slack workspace about miscellaneous code questions, careers, advice, etc.

  • Colin Varney - Full-stack python guy. Is working his first full-time software job!
  • Fazleem Baig - MLOps guy. Quite experienced with Python and learning about AWS. Working for an AI startup in Canada.
  • Ayse (Aysha) Arslan - Learning about all things MLOps. Working her first MLE/MLOps job!
  • Sebastian Sanchez - Learning about frontend development.
  • Yashwanth (Yash) Kumar - Finishing up the Georgia Tech online masters in CS.
  • Ben Doyle - Mixed work experience in NLP, full-stack development, and data analytics. Finishing undergrad at BYU in December 2022.

Postgres/SQLAlchemy vs DynamoDB/boto3

We've received several thank you messages from engineers who have used this codebase as a reference for designing their own production-ready FastAPI REST APIs. You are welcome to as well :)

Rootski now uses DynamoDB as the backend database, but it once used PostgreSQL and SQLAlchemy. You can use this git hash (a24b7ba) to go back in time to see the original SQL-based implementation.

If you come from a SQL background as we did and want to learn DynamoDB, comparing the old SQL implementation with the new Dynamo implementation may be helpful for you.

See the docs.rootski.io for documentation of the original and new database schemas.