GithubHelp home page GithubHelp logo

ulisesalexanderam / skillventory Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 986 KB

An API to manage a personal inventory. What's a personal inventory? In this case a personal inventory is a set of skills, knowledge and competences that a person has or is interested in obtain.

Home Page: https://ulisesalexanderam.github.io/skillventory/

License: MIT License

Python 96.56% Dockerfile 3.44%

skillventory's Introduction

Skillventory

CircleCI Codacy Badge Codacy Badge GitHub License

pre-commit.ci status Testing with poetry workflow Build docker image workflow

๐Ÿ“˜ Documentation ๐Ÿ’ป Source code

An API to manage a personal inventory.

What's a personal inventory? In this case a personal inventory is a set of skills, knowledge and competences that a person has or is interested in obtain.

๐Ÿ’ก Motivation

While taking a course about Career Plan Design and Development in Platzi. I came access this concept of a Personal Inventory and how this is part of the self-knowledge toolkit. I wanted to use it but I wasn't happy with my first iteration using worksheets. So I decide to build it as a webapp, then I decide to first build the API. In the future I'll add one or more front-end as demos.

๐Ÿš€ Quickstart

Docker

Local use

docker run -p <Local_Port>:80 ulisesalexanderam/skillventory:latest

Where the Local_Port is the port where you want to access the container from the host.

Deployment

docker run -p <Deployment_Host_Port>:80 ulisesalexanderam/skillventory:latest

Where the Deployment_Host_Port is the port in the deployment host from where you give access to the container.

๐ŸŽฏ Roadmap

Here is a little roadmap of what I want to implement and what its already implemented.

  • Complete CRUD API (functions that interact with the DB)
  • Rest API for the personal inventory
  • Upload Docker image to Docker Hub
  • Simple demo web client
  • Simple gtk+ desktop client

๐Ÿ™Œ Contributing

I really appreciate any kind of contributions but I list how you can contribute in some specific ways. Skillventory is currently develop and maintain by Ulises Alexander AM. I'm looking for additional maintainers that can help improve this project.

Providing feedback

You can provide feedback using the issues feature of GitHub. Open an Issue to request features, report bugs, or ask a question.

Graphic Design

At the moment Skillventory doesn't have a logo or any kind of supplemental imagery. So I welcome any submissions or suggestions for the logo and graphics associated with Skillventory

Documentation

You can help me proofreading and fixing any typo or formatting issues in the docs/ or README files. Material for MkDocs is use to build and publish the documentation.

!!! note The index.md and README.md files are content equals.

Code

You can also help with code.

Setting up your dev enviroment

The first thing you probably want to do is fork the project. You can do it from the web or if you have GH CLI installed in your system, with the following command:

gh repo fork UlisesAlexanderAM/skillventory

If you haven't clone your fork into your system, proceed to do it.

This project uses poetry, so I recommend you install it first, if you don't already have it installed.

With pipx

pipx install poetry

With the official installer

Linux, macOS, Windows(WSL)

curl -sSL https://install.python-poetry.org | python3 -

Windows(Powershell)

(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -

With poetry already in your system, and your fork, is time to install the dependencies.

Basic dev environment

poetry install --no-root --with test

With linting tools

poetry install --no-root --with test linting

Working with docs

poetry install --no-root --with docs

All included

poetry install --no-root -with test linting docs

You can use poetry shell to spawn a subshell, or is possible that your IDE already detects your environment.

To test your code, simply use pytest.

Inside the environment

pytest

Outside the environment (environment not active)

poetry run pytest

Finally open a pull request, if you add new funtionality please add some tests. In case you don't know how or need help open your PR as a draft pull request.

skillventory's People

Contributors

ulisesalexanderam avatar pre-commit-ci[bot] avatar dependabot[bot] avatar

Watchers

 avatar

skillventory's Issues

Update skill's name via an HTTP client

As a person with skills registered in a personal inventory, I want to update the name of a skill, so that I can correct any misspellings, or I want to replace the skill with something that adds context.

Acceptance criteria:

  • I can change the skill name

Update skill's level of confidence via an HTTP client

As a person with skills registered in a personal inventory, I want to update the skill's level of confidence, so that I can keep learning/improving and see a reflection of my current level of confidence of a given skill.

Acceptance criteria:

  • I can change the skill's level of confidence

Retrieve a skill by name via an HTTP request

As a User, I want to retrieve a skill given the name of the skill using an HTTP client, so I can see the characteristics of the skill.

Acceptance criteria:

  • I can retrieve the skill by its name.

Register a new skill via an HTTP request

As a person interested in keeping track of my skills/knowledge/abilities, for simplicity I'll call them skills, in a personal inventory, User, I want to register a new skill using tools like curl, httpx, or any other HTTP client, so I can keep track of it.

Acceptance criteria:

  • The skill has a name
  • The skill has a level of confidence, which is one of the following:
    • "Debo empezar a aprender o desarollar (I need to star learning or developing)"
    • "Estoy aprendiendo o desarrollando (I'm learning or developing it)"
    • "Tengo confianza (I'm confident)"

Retrieve multiple skills via HTTP client

As a user, I want to retrieve skills given certain criteria (how to order them, in groups of 15 skills), so I can know if a skill is missing, if a skill need more of my attention or if I need to change my learning plan/strategy.

Acceptance criteria:

  • Retrieve the skills in groups of 15

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.