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)