A project that enables instructors and students at Weber State to track and manage Computer Science projects via web application.
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 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.
This project uses the Python/Django framework along with SQLite for database operations.
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"
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.
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.
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.
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.
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:
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.
Open the terminal and type "python manage.py migrate --run-syncdb"
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.
-Fully functional Front End ✓
-Working Models ✓
-User Authentication (Salt and Hash) ✓
-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 ✓
-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
-User can switch ID and see another student's page
-A confirmation message is sent even if deleting/updating fails