A project that enables faculty at Weber State to track and manage Projects and Servers via web application.
Admin can create projects, servers, users and groups. Admin have full CRUD operations over these objects.
Users may register or login using the provided credentials and create/manage their own projects and servers. The user 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, a virtual environment will need to be created.
From the project root, run one of the following commands in the terminal to create the virtual environment: Note: If "python" is not recognized, use "python3".
Mac/Linux:
python -m venv .venv
Windows:
python -m venv C:\path\to\project\.venv
* replace with the path to your project folder
Now from the same directory, run one of the following commands to activate the virtual environment:
Mac/Linux:
source .venv/bin/activate
Windows:
.\.venv\Scripts\activate.bat
After a virtual environment is set up, the packages are ready to be installed.
From the project root, run pip install -r requirements.txt
from the terminal.
Note: If "pip" is not recognized, use "pip3".
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 python manage.py migrate --run-syncdb
.
Note: If "python" is not recognized, use "python3".
(if the previous command fails, make sure the required packages are installed. If not this can be done by running pip install PACKAGENAMEHERE
in the terminal)
Next, run python 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 python 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 http://127.0.0.1:8000.
From there you can go to http://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) ✅
- Register Page ✅
- Generate list of active servers for auditors ✅
- Required data fields for servers ✅
- Logout ✅
- Ping servers ✅
- Password Reset ✅
- Get rid of redundant code ✅
- Custom Data Fields for Servers
- Code testing
- More granular permissions (grant read/update separately)
- More auditing fields (Audit history and notes)
- Server tracking
- Backups
???
🐺