Database - sharath1996/resume-builder GitHub Wiki

Database

We will use mongoDB for our database and we will have a wrapper around that to perform the operations to database. This ensures that even if we change the database, we don't break the code.

Features of the database wrapper

Profiles

  • Create Create a new profile with profile name
  • Read Read the profile with profile name
  • Update Update the profile name
  • Delete Delete the profile name
  • Get All Profiles Get all the available profile names

Class Diagram


classDiagram
class ProfileDatabase {
   + create(param_profileName, param_profile)
   + read(param_profileName)
   + update(param_profileName, param_profile)
   + delete(param_profileName)
}

In future, we can have authentication wrapper written around these operations.

What should go in database?

Profile Structure

  • Name of the profile (str)
  • Full name of the candidate (str)
  • Current Residence (str)
  • Contact number (str) (including country codes)
  • LinkedIn profile hyperlink (str)
  • GitHub profile hyperlink (str)
  • Custom profile hyperlink (str)
  • About candidate (str)
  • Work experience (list)
    • Company name (str)
    • Designation (list)
      • Start date (datetime)
      • End time (datetime / str)
      • Designation name (str)
      • Place (str)
      • Projects (list)
        • Project (str) (Markdown format)
      • Achievements (list)
      • Skills (list[str])
  • Education (list)
    • Institution name (str)
    • Degree (str)
    • Start date (datetime)
    • End date (datetime)
    • Grade (str)
    • Place (str)
    • Projects (list)
      • Project (str)
      • Highlights (str)
  • Certifications and Licenses (list)
    • Name (str)
    • Issuing Authority (str)
    • Issue date (str)
    • Expiry date (str)
  • Papers (list)
    • Paper title (str)
    • Abstract (str)
    • Publisher details (str)
    • Hyperlink (str)
    • Date of publication (datetime)
  • Patents (list)
    • Patent title (str)
    • Abstract (str)
    • Patent Office (str)
    • Publishing date (datetime)
  • Talks (list)
    • Talk title (str)
    • Abstract (str)
    • Place (str)
    • Date (datetime)
  • Skills (list[str])
  • Job Applications (list)
    • Job description (str)
    • Generated resume (dict)