1
\$\begingroup\$

I am trying to create a resume app from django. I have divided the entities for resume as Resume, Experience, Education, Qualification/Skills, Reference. I have modeled the following entities as below

class Resume(models.Model):
    applicant = models.OneToOneField(User, on_delete=models.CASCADE)
    name = models.CharField(max_length=100, blank=False, null=False, help_text="Full Name")
    slug = models.SlugField(max_length=50, unique=True)
    designation = models.CharField(max_length=200, blank=True, null=True)
    career_goal=models.CharField(max_length=500, blank=True, null=True)
    city = models.CharField(max_length=100, blank=True, null=True)
    address = models.CharField(max_length=100, blank=True, null=True)
    phone_number = models.CharField(max_length=100, blank=True, null=True)
    email=models.EmailField(blank=False, null=False)
    website=models.URLField(blank=True, null=True)
    linkedin_url=models.URLField(blank=True, null=True)
    twitter_url=models.URLField(blank=True, null=True)
    facebook_url=models.URLField(blank=True, null=True)
    summary=models.CharField(max_length=400, blank=True, null=True)

    class Meta:
        verbose_name = 'Resume'
        verbose_name_plural = 'Resume'

    def __str__(self):
        return self.first_name + self.last_name

class Education(models.Model):
    resume = models.ForeignKey(Resume, related_name='education')
    name = models.CharField(max_length=100, blank=False, null=False, help_text="Name of an institution")
    course = models.CharField(max_length=200, blank=False, null=False, help_text="Name of a course")
    description = models.CharField(max_length=400, blank=True, null=True)
    start_date = models.DateField() #only get year
    end_date = models.DateField() # only year

    class Meta:
        verbose_name = 'Education'
        verbose_name_plural = 'Education'

    def __str__(self):
        return '{0} -> {1}'.format(self.resume.name, self.name)


class Experience(models.Model):
    resume = models.ForeignKey(Resume, related_name='experience')
    designation = models.CharField(max_length=100, blank=True, null=True)
    company = models.CharField(max_length=100, blank=True, null=True)
    description=models.CharField(max_length=400, blank=True, null=True)
    start_date = models.DateField()
    end_date = models.DateField()

    class Meta:
        verbose_name='Experience'
        verbose_name_plural='Experiences'

    def __str__(self):
        return self.designation

class Skill(models.Model):
    resume=models.ForeignKey(Resume, related_name="skills")
    name = models.CharField(max_length=100, blank=True, null=True, help_text="Name of the skill")

    class Meta:
        verbose_name='Skill'
        verbose_name_plural='Skills'

    def __str__(self):
        return self.name


class Reference(models.Model):
    resume = models.ForeignKey(Resume, related_name='resume')
    name_of_refree=models.CharField(max_length=100, blank=False, null=False)
    designation_of_refree = models.CharField(max_length=100, blank=False, null=False)
    phone_number=models.CharField(max_length=50, blank=False, null=False)

I want someone to review at my model and help me on if I have designed the relation perfectly or not. I am trying for arranging the content for perfect resume so i am wanting it to be both content friendly and user friendly which will help in building convincible resume. Also please feel free to sum your expertise/idea.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.