Giter Club home page Giter Club logo

server_manager's Introduction

Server_Manager

Project Overview

A project that enables instructors and students at Weber State to track and manage Computer Science projects via web application.

Instructors

Instructors can create courses, create groups within courses, and generate student credentials. Instructors have full CRUD operations over these objects. Instructors can provide the generated credentials to students within groups to login. Instructors are able to view any projects that are created from any student within a group.

Students

Students may login using the provided credentials and create/manage their own project(s). The student fills out the required information in the project form and submits it; from there, they are given full CRUD operations for their projects.

Technology Used

This project uses the Python/Django framework along with SQLite for database operations.

Getting Started

Installing python and django

This project was made using the Django web framework. To get started, make sure you have an updated version of python. If not, you can download it from https://www.python.org/downloads/

Once python is installed, Django needs to be installed.

On Mac or Linux operating systems, run "pip3 install django" from the terminal. Note: If "pip3" is not recognized, use "pip".

On Windows, run "pip3 install django" from the command line, then add the script path to your environment variables.

Other libraries needed are sweetify and bcrypt which can be installed with "pip3 install sweetify" and "pip3 install bcrypt"

Running the project

To run the project, clone the repository and open the project with an IDE. We used Pycharm from Jetbrains, which is free for students and can be downloaded here https://www.jetbrains.com/pycharm/.

Next, navigate to the correct folder in the terminal (the one that contains the manage.py file) and run "python3 manage.py migrate --run-syncdb". Note: If "python3" is not recognized, use "python".

(if the previous command fails, make sure the required packages are installed. If not this can be done by running "pip3 install PACKAGENAMEHERE" in the terminal)

Next, run "python3 manage.py makemigrations" to make the migrations then finally run "python3 manage.py migrate". Once changes are migrated you should see a similar output in your terminal. image

After the migrations are successfully applied, run "python3 manage.py createsuperuser" in the terminal, then follow the instructions to create an admin user. Note: For security purposes, the password will not be displayed as you enter it. image

After the migrations have been applied and a super user has been created, run "python3 manage.py runserver" and if everything was successful, the project should start and be hosted on 127.0.0.1:8000. image

From there you can go to 127.0.0.1:8000/admin and login with your super user. This will show you all the database tables and allow you to make users with different roles to test the project. image

Troubleshooting

Occasionally, the django framework does not properly update the models and database when making updates to the Django models. The cause is unknown. This results in being presented with several error messages such as certain tables (E.G. "group_TestUser) not being found. When this happened, there are several workarounds that can be attempted:

1) Specifc App Migrations

Open the terminal and apply the migrations to a specific app, E.G. "python manage.py makemigrations group". This will typically fix the problem where a specific model doesn't get updated with the normal migrations command.

2) Sync Database

Open the terminal and type "python manage.py migrate --run-syncdb"

3) Delete Database (Loss of user accounts)

If the above 2 fail, you can try deleting the db.sqlite3 file and repeating steps 1 and 2. Please note that this will remove all user accounts from the database.

Project Priorities

Tier 1

-Fully functional Front End ✓
-Working Models ✓
-User Authentication (Salt and Hash) ✓

Tier 2

-Professors can view student's projects and details ✓
-Student's can create projects and their details ✓
-Professors have full CRUD operations for Courses, groups, and user credentials ✓
-Students have full CRUD operations for their projects ✓

Tier 3 (Beyond scope for semester)

-Functionality for students to upload files required for containerizing projects
-Collaborate with Weber IT to get a proper server set up for hosting the project
-Email student credentials to student once generated by the professor (Currently just displays them to the professor to share)
-Docker Containerization and deployment for working web app

Bugs:

-User can switch ID and see another student's page
-A confirmation message is sent even if deleting/updating fails

server_manager's People

Contributors

kaiyajoye avatar kayleedockter avatar kcroshaw avatar parkeradams avatar rflowers45 avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.