Backend routes and database for an abstract theoretical app that relates a database of courses, users, and assignments.

Related tags

CMSCMS
Overview

CMS

Backend routes and database for an abstract theoretical app for organizing and providing course information that relates courses, users, and assignments.

app.py contains all routes. db.py contains classes Course, User, and Assignment. requirements.txt contains all required downloads to run application.

The database contains five tables: "course", "user", "assignment", "tstudents", and "tinstructors". The last two tables are both join tables between "course" and "user". For each course, the "course" table stores an id, code, name, list of assignments, list of instructors, and list of students. For each user, the "user" table stores an id, name, netid, instructor courses, and student courses. Columns for both instructor courses and student courses are necessary as a user could be both an instructor and student. For each assignment, the "assignment" table stores an id, title, due date, and course id. There is a one-to-many relationship between "course" and "assignment" and two many-to-many relationships between "course" and "user", the first relating courses with instructors and the second relating courses with students. instructor and student columns in "course" table are serialized users without course field and courses column in "user" table is serialized without users to avoid redundancy and recursion.

8 routes implemented:

GET /api/courses/ Sucess response returns a list of all courses, serialized with all columns.

POST /api/courses/ Pass in course code and name. Success response creates a new course with empty fields for assignments, instructors, and students. Adds course to database. Returns course, serialized with all columns. Returns error if the code or name fields are invalid.

GET /api/courses/int:course_id/ Success response returns course specified by id, serialized with all columns. Returns error if id does not exist.

DELETE /api/courses/int:course_id/ Success response removes course from database and returns course, serialized with all columns. Returns error if id does not exist.

POST /api/users/ Pass in name and netid. Success response creates a new user with empty fields for instructor and student courses and adds user to database. Returns user, serialized with all columns.

GET /api/users/int:user_id/ Success response returns user specified by id, serialized with all columns. Returns error if id does not exist.

POST /api/courses/int:course_id/add/ Pass in user id and type, where type is either "instructor" or "student". Sucess response updates the specified course by adding the specified user to either its "instructors" or "students" column. Updates specified user by adding specified course to either its "instuctor_courses" or "student_courses" columns. Returns the specified course. Returns error if course id does not exist, or if "user_id" or "type" fields are invalid.

POST /api/courses/int:course_id/assignment/ Pass in title and due date. Success response creates a new assignment with specified course in its "course_id" column. Updates specified course by adding the new assignment to its assignments column. Returns new assignment, serialized with all columns. Returns error if course id does not exist, or if "title" or "due_date" fields are invalid.

Owner
Sean Wiesner
Math and CS @ Cornell
Sean Wiesner
Random tarot card generator + rudimentary Django CMS

TAROT JUICER This is a rudimentary Django-based CMS which dynamically presents tarot-related content placed onto unconventional but familiar contexts

Kyle Rafa Lazaro 7 Apr 26, 2022
Python scripts to interact with the CakeCMS API.

Python scripts to interact with the CakeCMS API. Installation of the python module Prerequisites The cakecms module has to be installed first. Install

Fabian Thomas 3 Jan 31, 2022
Kotti is a high-level, Pythonic web application framework based on Pyramid and SQLAlchemy. It includes an extensible Content Management System called the Kotti CMS.

Kotti Kotti is a high-level, Pythonic web application framework based on Pyramid and SQLAlchemy. It includes an extensible Content Management System c

Kotti 394 Jan 07, 2023
Crypt Wiki - VimWiki with added support for encryption/decryption

Crypt Wiki - VimWiki with added support for encryption/decryption This project is meant to solve an issue I have ran into recently. I wanted to have a

Adrian Costin 6 Dec 18, 2022
CMS framework for Django

Created by Stephen McDonald Overview Mezzanine is a powerful, consistent, and flexible content management platform. Built using the Django framework,

Stephen McDonald 4.6k Dec 29, 2022
A course management web application

umber a course management web app built with python Flask, sqlite3, and git. installation Tested on Ubuntu 18 with python 3.5. # -- Install the system

Jim Mahoney 6 Jun 03, 2022
Flask-SQLAlchemy implementation of nested/threaded comment replies.

Threaded comments using Common Table Expressions (CTE) for a MySQL Flask blog or CMS Credits to peterspython Also read more about the implementation h

ONDIEK ELIJAH OCHIENG 5 Nov 12, 2022
The Plone CMS: root integration package

About Plone Plone is a mature, secure and user-friendly Content Management System (CMS). Plone - and the Open Source community behind it - aggregates

Plone Foundation 200 Jan 08, 2023
Ella is a CMS based on Python web framework Django with a main focus on high-traffic news websites and Internet magazines.

Ella CMS Ella is opensource CMS based on Django framework, designed for flexibility. It is composed from several modules: Ella core is the main module

295 Oct 16, 2022
Set of Web-backend projects to implement micro-blogging site

Mini-Twitter This repository contains a set of projects covered for CPSC-449 Web-Backend development under the guidance of Prof. Kenytt Avery at CSU,

1 Nov 07, 2021
Django CMS Project for quicksetup with minimal installation process.

Django CMS Project for quicksetup with minimal installation process.

Dipankar Chowdhury 3 Mar 24, 2022
plumi video sharing

December 2017 update We are moving tickets from the Plumi tracker (trac.plumi.org) here, for historical reasons. Plumi video sharing system Plumi is a

Plumi 111 Dec 15, 2022
ConnectLearn is an easy to use and deploy Open-Source Project meant to make it easier for the right students to find the right teachers online.

ConnectLearn ConnectLearn is an easy to use and deploy Open-Source Project meant to make it easier for the right students to find the right teachers o

Aditya 5 Oct 24, 2021
LOOKING FOR NEW MAINTAINER - Quokka is a Content Management System - `docker run --rm -it -p 5000:5000 quokka/quokka`

Quokka The Happiest CMS in the world Quokka is a Content Management Framework written in Python. A lightweight framework to build CMS (Content Managem

Quokka Project 2.2k Jan 01, 2023
Abilian Social Business Engine - an enterprise social networking / collaboration platform.

About Abilian SBE (Social Business Engine) is a platform for social business applications, and more specifically collaborative / enterprise 2.0 busine

Abilian open source projects 63 Dec 29, 2022
wger Workout Manager is a free, open source web application that helps you manage your personal workouts, weight and diet plans and can also be used as a simple gym management utility.

wger (ˈvɛɡɐ) Workout Manager is a free, open source web application that helps you manage your personal workouts, weight and diet plans and can also be used as a simple gym management utility.

wger Project 2k Dec 29, 2022
A python open source CMS scanner that automates the process of detecting security flaws of the most popular CMSs

CMSmap CMSmap is a python open source CMS scanner that automates the process of detecting security flaws of the most popular CMSs. The main purpose of

RazzorBack 1 Oct 31, 2021
A plugin for Wagtail CMS, to have Icon Blocks (Fontawesome support)

WAGTAIL ICONIFY Library developed for Wagtail CMS, its purpose is to provide icon blocks from various libraries Special thanks to Alex Gleason, as wel

2 Jun 07, 2022
Oppia a free, online learning platform to make quality education accessible for all.

Oppia is an online learning tool that enables anyone to easily create and share interactive activities (called 'explorations'). These activities simulate a one-on-one conversation with a tutor, makin

Oppia 4.8k Dec 28, 2022
用Hexo的方式管理WordPress(使用Github Actions自动更新文章到WordPress)

方圆小站Github仓库 ---start--- 目录(2021年02月17日更新) 《刺杀小说家》一个勇士屠恶龙救苍生的故事 衡水的中学为高考服务,996.icu为人民企业家服务 轻薄的代价(纪念不足两岁MacBook轻薄本的陨落) PP鸭最佳替代品!《图压》批量压缩图片而不损失画质,支持JPG,

zhaoolee 166 Jan 06, 2023