An intranet is a private network that is used by an organization to share information and resources with its employees. It is similar to the internet, but it is not accessible to the public. Intranets can be used to store documents, share files, collaborate on projects, and communicate with employees. They can also be used to provide employees with access to training materials, benefits information, and other resources. Intranets can be a valuable tool for organizations of all sizes. They can help to improve communication, collaboration, and productivity.
This information was provided by Bard, a large language model from Google AI.
In this intranet you can add, remove and view annoucements/alerts, send and approve leave applications, request appointments and view, add checklists.
Download the files and then execute the following commands(required):
pip install -r requirements.txt
python manage.py makemigrations intracom
python manage.py migrate
- Make sure you completed the steps shown in the Installation section.
- Run
python manage.py createsuperuser
and create a new user. - Optional: If you want to get accesss to manager permissions such as being able to create new post or approving new users, go to the admin page and then set the manager option to True for the user. This is only for the first user other users can be made a manager using the edit-users-page.
- Log-in and you will be redirected to the home-page!
- If you try to create a user using the register form then the user will need to be approved by a manager before he/she logs in.
I wanted to make a project that would be practical and helpful to people. I was visiting my dad's hotel with my family when I noticed that the employees were still using paper checklists, which could easily get lost or torn and that paper would get wasted. This made me think about how I could create a digital checklist that would be more convenient and efficient.
In terms of complexity, I used Django with more than one model and JavaScript on the front-end. This was also the first time I used CSS transitions. Making the design mobile-friendly was also a new challenge using CSS and javascript. This project is a website which helps the employees in their work. They can easily check if there has been any announcements or if someone wants to meet them or even find the day-to-day checklists that they use or if they want to submit a leave application. These are all possible through the app.
- If you try to create a user using the register form and try to login with the same credentials you will not be able to since each user will need to be approved by the manager-users before they are allowed to sign in, this is because this is a employee only website. In case you are the first user, then you can create a superuser using the command
python manage.py createsuperuser
and then go to the django admin page and manually set manager boolean to true in the user model. For the other users after that they can be approved through the edit-users-page.
The ideology of this project was to make a website which was both practical and helpful. I created this intranet to help hotel employees switch away from paper. Paper-based systems are often inefficient, ecologically unfriendly and time-consuming. They can also be a source of lost or misplaced information. An intranet can help to eliminate these problems by providing a centralized location for employees to store and access information. Everyone nowadays has a mobile phone on them so this site can be accessed wherever you are.
You can register in this page. But if you try to login using the same credentials you used to sign in you can will not be able to login. Why, you might ask, well this is because this a employee only website, so not everyone can access this website, so you should get approval from any of the users which are managers. They should go to the edit-users-page and approve the users.
You can login using the credentials you registered with in the register page if you are approved by anyone of the managers and you will be redirected to the home-page.
The nav bar expands on hovering and there are 4 main icons in the middle. Those 4 icons in the middle lead to their respective pages, more details about the pages are mentioned below. The icon at the bottom is for logging out and the icon at the top(edit users) is for approving new users and making users into managers.
This is the first page you see when you login. Here you can see of all the announcements posted by any of the managers. If you are the manager you will see an add button to add a new alert. If you are a manager you can also see a delete button when you hover over each indivudual alert when you click on that button, the corresponding alert will be deleted. If you click on the "View details" button you can see all of the details of the alert you clicked on.
This is the second item in nav-bar.You can see a filter button on the bottom right, and when you click on that button then a filter menu will appear and you can filter for the required department. If you are the manager you will see an add button to add a new checklist which opens a modal for you to add a new checklist. If you are a manager when you hover over each indivudual checklist item you can also see a delete button. When you click on that button, the corresponding checklist will be deleted. If you click on the "View details" button you see the all of the tasks of the checklist you clicked on.
This is the third item in the nav-bar. You can see all of your requests and request others have made to you here. If you are a manager you can see all of the requests. You can see a add button at the bottom and when clicked it opens a modal for you to create a new appointment with any of the managers. The person who got the request can accept or decline with a message by clicking on the cross and check-mark icons shown when hovered. If you click on the "View details" button you see the all of the details of the appointment you clicked on.
This is the 4th item in the nav-bar. You see all of your leave applications here and check if they were accepted or declined. If you are a manager you can see all of the requests. Similar to the appointments page you can accept or decline the leave applications with a message. If you click on the "View details" button you see the all of the details of the leave application you clicked on.
This page can only be accessed by managers. In this page you can make a user into a manager and approve or decline and any user approval requests. If a user is a manager then you can see this page icon in top portion of nav bar.
trios
├── trios/ -> core application
│ ├── asgi.py
│ ├── __init__.py
│ ├── settings.py -> Settings for the application
│ ├── urls.py -> Global urls mapping
│ └── wsgi.py
├── intracom/ -> The main website/app
│ ├── migrations/ -> Automatically generated migrations folder
│ ├── static/
│ │ └── intracom/
│ │ ├── alert.css -> CSS file for alerts page
│ │ ├── alert.js -> Javascript file for alerts page
│ │ ├── appointment.css -> CSS file for appointment page
│ │ ├── appointment.js -> Javascript file for appointment page
│ │ ├── checklists.css -> CSS file for checklists page
│ │ ├── checklists.js -> Javascript file for checklists page
│ │ ├── edit.css -> CSS file for edit page
│ │ ├── icon.png -> Favicon for the all the pages
│ │ ├── leave.css -> CSS file for leave page
│ │ ├── leave.js -> Javascript file for leave page
│ │ ├── login.css -> CSS file for login page
│ │ └── styles.css -> CSS file for styles page
│ ├── templates/
│ │ └── intracom/
│ │ ├── alerts.html -> Alert page
│ │ ├── appointment.html -> Appointment page
│ │ ├── checklists.html -> Checklist page
│ │ ├── edit.html -> Edit user page
│ │ ├── layout.html -> Basic layout template file
│ │ ├── leave.html -> Leave application page
│ │ ├── login.html -> Login page
│ │ └── register.html -> Register page
│ ├── __init__.py
│ ├── admin.py -> Registering models to admin
│ ├── apps.py
│ ├── models.py -> App models
│ ├── tests.py
│ ├── urls.py -> URLs in this app
│ └── views.py -> Website views
├── manage.py
├── README.md -> README file
└── requirements.txt -> file that contains the project dependencies