Skip to content

ErikMidas/Student_Management_API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Stargazers Issues MIT License Twitter

A Typical School Management System API Built with Flask



Table of Contents
  1. About
  2. Lessons Learned
  3. Usage
  4. Sample
  5. License
  6. Contact
  7. Acknowledgements

back to top


About

This Student Management API is one of the projects I've been able to craft with my coding skills. It was built as an exam project for Backend Engineering track using Python Flask framework at AltSchool Africa.

This is a school management system API built with Flask and Flask_RestX built by according to this requirements. It is a simple API that allows an Admin to perform CRUD operations on students and courses. It also allows you to register students to courses and add grade for students.

back to top

Built With:

Python Flask SQLite

back to top


Lessons Learned

Creating this API helped me learn and practice:

  • API Development with Python
  • App Deployment with PythonAnywhere
  • Testing with pytest and Insomnia
  • Documentation
  • Debugging
  • Routing
  • Database Management
  • Internet Security
  • User Authentication
  • User Authorization

back to top


Usage

To get a local copy up and running, follow the steps below.

Prerequisites

Python3: Get Python

Installation

  1. Clone this repo
    git clone https://github.com/ErikMidas/Student_Management_API.git
  2. Create a virtual environment
    python -m venv env
  3. Activate the virtual environment
    source env/Scripts/activate
  4. Install project packages
    pip install -r requirements.txt
  5. Run Flask
    python runserver.py
  6. Open the link generated in the terminal on a browser or visit http://localhost:5000

Live Demo

To interact with the live version of this API, follow these steps:

  1. Open the PythonAnywhere web app on your browser: https://erikmidas.pythonanywhere.com

  2. Create an admin or student account:

    • Click "admin" to reveal a dropdown menu of administration routes, then register an admin account via the "/admin/register" route
    • Click "students" to reveal a dropdown menu of student routes, then register a student account via the "/students/register" route
  3. Sign in via the "/auth/login" route to generate a JWT token. Copy this access token without the quotation marks

  4. Scroll up to click "Authorize" at top right. Enter the JWT token in the given format, for example:

    Bearer this1is2a3rather4long5hex6string
  5. Click "Authorize" and then "Close"

  6. Now authorized, you can create, view, update and delete students, courses, grades and admins via the many routes in "students", "courses" and "admin". You can also get:

    • All students taking a course
    • All courses taken by a student
    • A student's grades in percentage (eg: 84.8%) and letters (eg: A)
    • A student's CGPA, calculated based on all grades from all courses they are taking
  7. When you're done, click "Authorize" at top right again to then "Logout"

back to top


Sample


sample


back to top


License

Distributed under the MIT License. See LICENSE for more information.

back to top


Contact

Ayodeji Okulaja - @Koats14 - ayotoku@gmail.com

Project Link: PythonAnywhere

back to top


Acknowledgements

This project was made possible by:

back to top


Releases

No releases published

Packages

No packages published