Giter Site home page Giter Site logo

ulisesalexanderam / my_portfolio_api Goto Github PK

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

API that serves as the bridge between my future portfolio website and the database where all the information is saved.

License: MIT License

Python 100.00%
api beanie fastapi jobsearch pydantic python

my_portfolio_api's Introduction

My portfolio API previously known as Job Hunting Helper

This is a project to access a list of my skills and the projects related to them. The API serves as the bridge between my future portfolio website and the database where all information is saved. This API only can access the database, it can't modify it, to do operations in the database I'm planning to create a command line utility, probably with Typer.

Motivation

This project started as an app to keep track of my job applications, but as I was developing it I realized that I was more interested in keeping track of my skills and the projects related to them. So I decided to change the focus of the app. This forms the API of my portfolio. The front end will be in another repository.

Technologies used

  • FastAPI
  • Beanie to connect to MongoDB

Diagrams

Entity Relationship Diagram (ERD)

erDiagram
  Skills one or more -- one or more SkillsProjects : has
  Projects one or more -- one or more SkillsProjects : has
  Skills {
    objectId _id PK
    string name UK
    string description
  }
  Projects {
    objectID _id PK
    string name UK
    string description
  }
  SkillsProjects {
    objectId _id PK
    objectId skillsId FK
    objectId projectsId FK
  }
Loading

User stories

  • 1 - Retrieve a skill As a person who wants to keep track of my skills, I want to retrieve a skill, so that I can see its details.

    Acceptance criteria:

    • I can retrieve a skill by its name
    • I can retrieve a skill's description
    • I can retrieve a skill's projects
  • 2 - Retrieve all skills As a person who wants to keep track of my skills, I want to retrieve all skills, so that I can see all of them.

    Acceptance criteria:

    • I can retrieve all skills
  • 3 - Retrieve a project As a person who wants to keep track of my skills, I want to retrieve a project, so that I can see its details.

    Acceptance criteria:

    • I can retrieve a project by its name
    • I can retrieve a project's description
    • I can retrieve a project's links
    • I can retrieve a project's skills
  • 4 - Retrieve all projects As a person who wants to keep track of my skills, I want to retrieve all projects, so that I can see all of them.

    Acceptance criteria:

    • I can retrieve all projects

my_portfolio_api's People

Contributors

dependabot[bot] avatar ulisesalexanderam avatar

Watchers

 avatar

my_portfolio_api's Issues

Obtain job application/job or company of interest

  • Function to ask for the job title of the job opening or job title desired.
  • Function to ask for the application status.
  • Function to ask for the date of application.
  • Function to ask for the source of the job opening.
  • Function to ask for the company name.
  • Function to ask for the skills specific to the job.

Modify skill

  • Function to edit skill name
  • Function to update skill level
  • Function to delete skill

Store skills

  • Store skills in an SQLite database.
  • Function to save the skill in the table

Database tables

  • Function to create a table for the skills
  • Function to create a table for the job openings/jobs or companies of interest.

Skills window

  • Window that shows all the skills saved
  • Button to add new skill
  • Visual element to delete a skill
  • Visual element to edit a skill
  • Selection checkbox

Retrieve job applications/jobs or companies of interest

  • Function to retrieve the job title.
  • Function to retrieve the application status.
  • Function to retrieve the date of applications if exist.
  • Function to retrieve the source of the job opening or the company of interest.
  • Function to retrieve the company name.
  • Function to retrieve the skills specific to the job opening.
  • Function to retrieve the skill alignment indicator.

Create a data class for the job application/interest in a job or company

The data class must contain the following fields:

  • Job title - Type str

  • Application status - Enum:

    • Interesado (Spanish for interested)
    • Preparando/personalizando CV (Spanish for preparing/personalizing resume)
    • CV enviado/aplicacion iniciado (Spanish for resume sent/application initiated)
    • Agendando entrevista (Spanish for scheduling interview)
    • Entrevista agendada (Spanish for interview scheduled)
    • Rechazado (Spanish for rejected)
    • Aceptado (Spanish for aceppted)
    • Contrato firmado (Spanish for contract signed)
    • Onboarding
  • Date of application (Optional) - Date object

  • Source of the job opening or company of interest - Type str

  • Company name - Type str

  • Skills specific to the job opening - list of skills

  • Skill alignment indicator - Type float

Obtain skill

  • Function to ask for the skill name.
  • Function to ask for the skill level.

Connection to database

  • Function to connect to the database.
  • Function to close the connection to the database.

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.