jaeyholic / student-management-system

Management system for students of our free coding school.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Student Management System

This is a simple API for:

  • creating a unified interface for keeping track of freeCodeSchool students
  • accounts for students to login and see their own pages
  • admins can login and see everyone via the Django admin interface
  • it will be able to use Github OAuth

About the Program

  • freeCodeSchool is a non-profit coding program that teaches people coding basics for free.
  • It's set up to offer 3-month long classes in two different levels, 1 and 2. When students pass level 1 - HTML, CSS, and JS, they can move onto level 2 - Node, Express, and Mongo.

Table of Contents

Requirements

  • Students and Organizers/Admin accounts login using GitHub OAUTH

  • Private Student Profile: Visible to only the user and organizers/admins

    • FreeCodeCamp.org progress page url: freecodecamp.org/codecafecentral
    • Email
    • Discord Name
    • Phone
    • Attendenance (not editable by students)
    • List of labs:
      • Link to the lab starter
      • input field for a link to their completed version
  • Admin Dashboard

Schema

  • User

    • email
    • password
    • groups: student, admin, or volunteer (can only belong to one)
  • StudentProfile

    • first_name
    • last_name
    • preferred_name
    • discord_name
    • github_username
    • codepen_username
    • fcc_profile_url
    • current_level
    • phone
    • timezone
  • Volunteer

    • first_name
    • last_name
    • email
    • hours_available
  • VolunteerHours

    • volunteer_id
    • day: CharField with choices -> mon, tue, wed, thu, fri, sat, sun
    • begin_hour: models.PositiveSmallIntegerField(validators=[MaxValueValidator(24)])
    • end_hour: models.PositiveSmallIntegerField(validators=[MaxValueValidator(24)])
  • Lecture

    • date
    • title
    • description
    • lecturer_name
    • slides_url
    • duration
    • level
    • required: BooleanField
  • Attendance

    • lecture_id
    • student_id
  • Project (labs)

    • title
    • description
    • url
    • level
    • required
  • StudentSubmission

    • student_id
    • project_id
    • url: CharField
    • feedback: TextField (for comments from reviewers)
    • approved: BooleanField
  • StudentCertificate

    • student_id
    • certificate_id
  • Certificate

    • name
    • description
  • Waitlist

    • first_name
    • last_name
    • email
    • notes

API

Prefix: /api/v1

/students

  • get (temporary, only for testing)
  • post

/students/:id

  • get
  • patch
  • delete

/students/:id/certificates

  • get

/students/:id/assignments

  • get
  • post

/certificates

  • get

/projects

  • get

Roadmap

Version 2

  • Students will be able to have public profiles with this information:

    • First Name
    • Last Name
    • Preferred Name
    • GitHub Username
    • Codepen Username
    • Certificates/Badges
  • Area where volunteers can view their own information and update their hours

  • Set type of lecture (add type field to Lecture model)

About

Management system for students of our free coding school.

License:Mozilla Public License 2.0


Languages

Language:Python 100.0%