29 |
61 |
62 |
63 |
64 |
65 |
68 |
69 |
72 |
73 |
74 |
--------------------------------------------------------------------------------
/static/css/styles.css:
--------------------------------------------------------------------------------
1 | @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500;600;700&display=swap');
2 |
3 | * {
4 | margin: 0;
5 | padding: 0;
6 | box-sizing: border-box;
7 | }
8 |
9 | html,
10 | body {
11 | margin: 0px;
12 | height: 100%;
13 | width: 100%;
14 | font-family: Arial, Helvetica, sans-serif;
15 | }
16 |
17 | .navbar-nav li {
18 | padding-right: 30px;
19 | }
20 |
21 | .nav-link {
22 | color: black !important;
23 | font-size: 18px !important;
24 | }
25 |
26 | .sidebar {
27 | position: fixed;
28 | left: 0;
29 | top: 0;
30 | height: 100%;
31 | width: 78px;
32 | background: blueviolet;
33 | padding: 6px 14px;
34 | z-index: 99;
35 | transition: all 0.5s ease;
36 | }
37 |
38 | .sidebar.open {
39 | width: 250px;
40 | }
41 |
42 | .sidebar .sidebar_btn {
43 | height: 60px;
44 | display: flex;
45 | align-items: center;
46 | position: relative;
47 | }
48 |
49 | .sidebar .sidebar_btn #btn {
50 | position: absolute;
51 | top: 50%;
52 | right: 0;
53 | transform: translateY(-50%);
54 | font-size: 22px;
55 | transition: all 0.4s ease;
56 | font-size: 23px;
57 | text-align: center;
58 | cursor: pointer;
59 | transition: all 0.5s ease;
60 | }
61 |
62 | .sidebar.open .sidebar_btn #btn {
63 | text-align: right;
64 | }
65 |
66 | .sidebar i {
67 | color: #fff;
68 | height: 60px;
69 | min-width: 50px;
70 | font-size: 28px;
71 | text-align: center;
72 | line-height: 60px;
73 | }
74 |
75 | .sidebar .nav-list {
76 | margin-top: 20px;
77 | height: 100%;
78 | }
79 |
80 | .sidebar li {
81 | position: relative;
82 | margin: 8px 0;
83 | list-style: none;
84 | }
85 |
86 | .sidebar li .tooltip {
87 | position: absolute;
88 | top: -20px;
89 | left: calc(100% + 15px);
90 | z-index: 3;
91 | background: #fff;
92 | box-shadow: 0 5px 10px rgba(0, 0, 0, 0.3);
93 | padding: 6px 12px;
94 | border-radius: 4px;
95 | font-size: 15px;
96 | font-weight: 400;
97 | opacity: 0;
98 | white-space: nowrap;
99 | pointer-events: none;
100 | transition: 0s;
101 | }
102 |
103 | .sidebar li:hover .tooltip {
104 | opacity: 1;
105 | pointer-events: auto;
106 | transition: all 0.4s ease;
107 | top: 50%;
108 | transform: translateY(-50%);
109 | }
110 |
111 | .sidebar.open li .tooltip {
112 | display: none;
113 | }
114 |
115 | .sidebar input {
116 | font-size: 15px;
117 | color: #FFF;
118 | font-weight: 400;
119 | outline: none;
120 | height: 50px;
121 | width: 100%;
122 | width: 50px;
123 | border: none;
124 | border-radius: 12px;
125 | transition: all 0.5s ease;
126 | /* background: #1d1b31; */
127 | background: rgb(163, 88, 233);
128 | }
129 |
130 | .sidebar.open input {
131 | padding: 0 20px 0 50px;
132 | width: 100%;
133 | }
134 |
135 | .sidebar .bx-search {
136 | position: absolute;
137 | top: 50%;
138 | left: 0;
139 | transform: translateY(-50%);
140 | font-size: 22px;
141 | background: rgb(163, 88, 233);
142 | color: #FFF;
143 | }
144 |
145 | .sidebar.open .bx-search:hover {
146 | background: rgb(163, 88, 233);
147 | color: #FFF;
148 | }
149 |
150 | .sidebar .bx-search:hover {
151 | background: #FFF;
152 | color: #11101d;
153 | }
154 |
155 | .sidebar li a {
156 | display: flex;
157 | height: 100%;
158 | width: 100%;
159 | border-radius: 12px;
160 | align-items: center;
161 | text-decoration: none;
162 | transition: all 0.4s ease;
163 | background: blueviolet;
164 | }
165 |
166 | .sidebar li a:hover {
167 | background: #FFF;
168 | }
169 |
170 | .sidebar li a .links_name {
171 | color: #fff;
172 | font-size: 15px;
173 | font-weight: 400;
174 | white-space: nowrap;
175 | opacity: 0;
176 | pointer-events: none;
177 | transition: 0.4s;
178 | }
179 |
180 | .sidebar.open li a .links_name {
181 | opacity: 1;
182 | pointer-events: auto;
183 | }
184 |
185 | .sidebar li a:hover .links_name,
186 | .sidebar li a:hover i {
187 | transition: all 0.5s ease;
188 | color: #11101D;
189 | }
190 |
191 | .sidebar li i {
192 | height: 50px;
193 | line-height: 50px;
194 | font-size: 23px;
195 | border-radius: 12px;
196 | }
197 |
198 | .home-section {
199 | position: relative;
200 | background: #E4E9F7;
201 | min-height: 100vh;
202 | top: 0;
203 | left: 78px;
204 | width: calc(100% - 78px);
205 | transition: all 0.5s ease;
206 | }
207 |
208 | .home-section .text {
209 | display: inline-block;
210 | color: #11101d;
211 | font-size: 25px;
212 | font-weight: 500;
213 | margin: 18px
214 | }
215 |
216 | @media (max-width: 420px) {
217 | .sidebar li .tooltip {
218 | display: none;
219 | }
220 | }
221 |
222 | .center-img {
223 | display: block;
224 | margin-left: auto;
225 | margin-right: auto;
226 | }
227 |
228 | .btn-danger {
229 | float: right;
230 | margin: 7px;
231 | }
232 |
233 | .btn-success {
234 | float: left;
235 | margin: 6px;
236 | }
237 |
238 | ::placeholder {
239 | color: white;
240 | opacity: 1;
241 | }
--------------------------------------------------------------------------------
/staticfiles/css/styles.css:
--------------------------------------------------------------------------------
1 | @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@200;300;400;500;600;700&display=swap');
2 |
3 | * {
4 | margin: 0;
5 | padding: 0;
6 | box-sizing: border-box;
7 | }
8 |
9 | html,
10 | body {
11 | margin: 0px;
12 | height: 100%;
13 | width: 100%;
14 | font-family: Arial, Helvetica, sans-serif;
15 | }
16 |
17 | .navbar-nav li {
18 | padding-right: 30px;
19 | }
20 |
21 | .nav-link {
22 | color: black !important;
23 | font-size: 18px !important;
24 | }
25 |
26 | .sidebar {
27 | position: fixed;
28 | left: 0;
29 | top: 0;
30 | height: 100%;
31 | width: 78px;
32 | background: blueviolet;
33 | padding: 6px 14px;
34 | z-index: 99;
35 | transition: all 0.5s ease;
36 | }
37 |
38 | .sidebar.open {
39 | width: 250px;
40 | }
41 |
42 | .sidebar .sidebar_btn {
43 | height: 60px;
44 | display: flex;
45 | align-items: center;
46 | position: relative;
47 | }
48 |
49 | .sidebar .sidebar_btn #btn {
50 | position: absolute;
51 | top: 50%;
52 | right: 0;
53 | transform: translateY(-50%);
54 | font-size: 22px;
55 | transition: all 0.4s ease;
56 | font-size: 23px;
57 | text-align: center;
58 | cursor: pointer;
59 | transition: all 0.5s ease;
60 | }
61 |
62 | .sidebar.open .sidebar_btn #btn {
63 | text-align: right;
64 | }
65 |
66 | .sidebar i {
67 | color: #fff;
68 | height: 60px;
69 | min-width: 50px;
70 | font-size: 28px;
71 | text-align: center;
72 | line-height: 60px;
73 | }
74 |
75 | .sidebar .nav-list {
76 | margin-top: 20px;
77 | height: 100%;
78 | }
79 |
80 | .sidebar li {
81 | position: relative;
82 | margin: 8px 0;
83 | list-style: none;
84 | }
85 |
86 | .sidebar li .tooltip {
87 | position: absolute;
88 | top: -20px;
89 | left: calc(100% + 15px);
90 | z-index: 3;
91 | background: #fff;
92 | box-shadow: 0 5px 10px rgba(0, 0, 0, 0.3);
93 | padding: 6px 12px;
94 | border-radius: 4px;
95 | font-size: 15px;
96 | font-weight: 400;
97 | opacity: 0;
98 | white-space: nowrap;
99 | pointer-events: none;
100 | transition: 0s;
101 | }
102 |
103 | .sidebar li:hover .tooltip {
104 | opacity: 1;
105 | pointer-events: auto;
106 | transition: all 0.4s ease;
107 | top: 50%;
108 | transform: translateY(-50%);
109 | }
110 |
111 | .sidebar.open li .tooltip {
112 | display: none;
113 | }
114 |
115 | .sidebar input {
116 | font-size: 15px;
117 | color: #FFF;
118 | font-weight: 400;
119 | outline: none;
120 | height: 50px;
121 | width: 100%;
122 | width: 50px;
123 | border: none;
124 | border-radius: 12px;
125 | transition: all 0.5s ease;
126 | /* background: #1d1b31; */
127 | background: rgb(163, 88, 233);
128 | }
129 |
130 | .sidebar.open input {
131 | padding: 0 20px 0 50px;
132 | width: 100%;
133 | }
134 |
135 | .sidebar .bx-search {
136 | position: absolute;
137 | top: 50%;
138 | left: 0;
139 | transform: translateY(-50%);
140 | font-size: 22px;
141 | background: rgb(163, 88, 233);
142 | color: #FFF;
143 | }
144 |
145 | .sidebar.open .bx-search:hover {
146 | background: rgb(163, 88, 233);
147 | color: #FFF;
148 | }
149 |
150 | .sidebar .bx-search:hover {
151 | background: #FFF;
152 | color: #11101d;
153 | }
154 |
155 | .sidebar li a {
156 | display: flex;
157 | height: 100%;
158 | width: 100%;
159 | border-radius: 12px;
160 | align-items: center;
161 | text-decoration: none;
162 | transition: all 0.4s ease;
163 | background: blueviolet;
164 | }
165 |
166 | .sidebar li a:hover {
167 | background: #FFF;
168 | }
169 |
170 | .sidebar li a .links_name {
171 | color: #fff;
172 | font-size: 15px;
173 | font-weight: 400;
174 | white-space: nowrap;
175 | opacity: 0;
176 | pointer-events: none;
177 | transition: 0.4s;
178 | }
179 |
180 | .sidebar.open li a .links_name {
181 | opacity: 1;
182 | pointer-events: auto;
183 | }
184 |
185 | .sidebar li a:hover .links_name,
186 | .sidebar li a:hover i {
187 | transition: all 0.5s ease;
188 | color: #11101D;
189 | }
190 |
191 | .sidebar li i {
192 | height: 50px;
193 | line-height: 50px;
194 | font-size: 23px;
195 | border-radius: 12px;
196 | }
197 |
198 | .home-section {
199 | position: relative;
200 | background: #E4E9F7;
201 | min-height: 100vh;
202 | top: 0;
203 | left: 78px;
204 | width: calc(100% - 78px);
205 | transition: all 0.5s ease;
206 | }
207 |
208 | .home-section .text {
209 | display: inline-block;
210 | color: #11101d;
211 | font-size: 25px;
212 | font-weight: 500;
213 | margin: 18px
214 | }
215 |
216 | @media (max-width: 420px) {
217 | .sidebar li .tooltip {
218 | display: none;
219 | }
220 | }
221 |
222 | .center-img {
223 | display: block;
224 | margin-left: auto;
225 | margin-right: auto;
226 | }
227 |
228 | .btn-danger {
229 | float: right;
230 | margin: 7px;
231 | }
232 |
233 | .btn-success {
234 | float: left;
235 | margin: 6px;
236 | }
237 |
238 | ::placeholder {
239 | color: white;
240 | opacity: 1;
241 | }
--------------------------------------------------------------------------------
/Pipfile.lock:
--------------------------------------------------------------------------------
1 | {
2 | "_meta": {
3 | "hash": {
4 | "sha256": "483a374090825fc550d855063c92c160941207ee3ac926169c16ce1aeab801ce"
5 | },
6 | "pipfile-spec": 6,
7 | "requires": {
8 | "python_version": "3.8"
9 | },
10 | "sources": [
11 | {
12 | "name": "pypi",
13 | "url": "https://pypi.org/simple",
14 | "verify_ssl": true
15 | }
16 | ]
17 | },
18 | "default": {
19 | "asgiref": {
20 | "hashes": [
21 | "sha256:2f8abc20f7248433085eda803936d98992f1343ddb022065779f37c5da0181d0",
22 | "sha256:88d59c13d634dcffe0510be048210188edd79aeccb6a6c9028cdad6f31d730a9"
23 | ],
24 | "markers": "python_version >= '3.7'",
25 | "version": "==3.5.0"
26 | },
27 | "dj-database-url": {
28 | "hashes": [
29 | "sha256:4aeaeb1f573c74835b0686a2b46b85990571159ffc21aa57ecd4d1e1cb334163",
30 | "sha256:851785365761ebe4994a921b433062309eb882fedd318e1b0fcecc607ed02da9"
31 | ],
32 | "version": "==0.5.0"
33 | },
34 | "django": {
35 | "hashes": [
36 | "sha256:7f92413529aa0e291f3be78ab19be31aefb1e1c9a52cd59e130f505f27a51f13",
37 | "sha256:f27f8544c9d4c383bbe007c57e3235918e258364577373d4920e9162837be022"
38 | ],
39 | "index": "pypi",
40 | "version": "==3.2.6"
41 | },
42 | "django-crispy-forms": {
43 | "hashes": [
44 | "sha256:35887b8851a931374dd697207a8f56c57a9c5cb9dbf0b9fa54314da5666cea5b",
45 | "sha256:bc4d2037f6de602d39c0bc452ac3029d1f5d65e88458872cc4dbc01c3a400604"
46 | ],
47 | "index": "pypi",
48 | "version": "==1.14.0"
49 | },
50 | "django-heroku": {
51 | "hashes": [
52 | "sha256:2bc690aab89eedbe01311752320a9a12e7548e3b0ed102681acc5736a41a4762",
53 | "sha256:6af4bc3ae4a9b55eaad6dbe5164918982d2762661aebc9f83d9fa49f6009514e"
54 | ],
55 | "index": "pypi",
56 | "version": "==0.3.1"
57 | },
58 | "gunicorn": {
59 | "hashes": [
60 | "sha256:9dcc4547dbb1cb284accfb15ab5667a0e5d1881cc443e0677b4882a4067a807e",
61 | "sha256:e0a968b5ba15f8a328fdfd7ab1fcb5af4470c28aaf7e55df02a99bc13138e6e8"
62 | ],
63 | "index": "pypi",
64 | "version": "==20.1.0"
65 | },
66 | "psycopg2": {
67 | "hashes": [
68 | "sha256:06f32425949bd5fe8f625c49f17ebb9784e1e4fe928b7cce72edc36fb68e4c0c",
69 | "sha256:0762c27d018edbcb2d34d51596e4346c983bd27c330218c56c4dc25ef7e819bf",
70 | "sha256:083707a696e5e1c330af2508d8fab36f9700b26621ccbcb538abe22e15485362",
71 | "sha256:34b33e0162cfcaad151f249c2649fd1030010c16f4bbc40a604c1cb77173dcf7",
72 | "sha256:4295093a6ae3434d33ec6baab4ca5512a5082cc43c0505293087b8a46d108461",
73 | "sha256:8cf3878353cc04b053822896bc4922b194792df9df2f1ad8da01fb3043602126",
74 | "sha256:8e841d1bf3434da985cc5ef13e6f75c8981ced601fd70cc6bf33351b91562981",
75 | "sha256:9572e08b50aed176ef6d66f15a21d823bb6f6d23152d35e8451d7d2d18fdac56",
76 | "sha256:a81e3866f99382dfe8c15a151f1ca5fde5815fde879348fe5a9884a7c092a305",
77 | "sha256:cb10d44e6694d763fa1078a26f7f6137d69f555a78ec85dc2ef716c37447e4b2",
78 | "sha256:d3ca6421b942f60c008f81a3541e8faf6865a28d5a9b48544b0ee4f40cac7fca"
79 | ],
80 | "index": "pypi",
81 | "version": "==2.9.3"
82 | },
83 | "python-decouple": {
84 | "hashes": [
85 | "sha256:2838cdf77a5cf127d7e8b339ce14c25bceb3af3e674e039d4901ba16359968c7",
86 | "sha256:6cf502dc963a5c642ea5ead069847df3d916a6420cad5599185de6bab11d8c2e"
87 | ],
88 | "index": "pypi",
89 | "version": "==3.6"
90 | },
91 | "pytz": {
92 | "hashes": [
93 | "sha256:3672058bc3453457b622aab7a1c3bfd5ab0bdae451512f6cf25f64ed37f5b87c",
94 | "sha256:acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326"
95 | ],
96 | "version": "==2021.3"
97 | },
98 | "sqlparse": {
99 | "hashes": [
100 | "sha256:0c00730c74263a94e5a9919ade150dfc3b19c574389985446148402998287dae",
101 | "sha256:48719e356bb8b42991bdbb1e8b83223757b93789c00910a616a071910ca4a64d"
102 | ],
103 | "markers": "python_version >= '3.5'",
104 | "version": "==0.4.2"
105 | },
106 | "whitenoise": {
107 | "hashes": [
108 | "sha256:08c42bc535f9777eea1a599289d9433f081921f97887eaf6f559446b2a080374",
109 | "sha256:5a4aff543ee860fbe40d743e556adf92ccd41b7df45697cae074afdf657056b9"
110 | ],
111 | "markers": "python_version >= '3.7'",
112 | "version": "==6.0.0"
113 | }
114 | },
115 | "develop": {}
116 | }
117 |
--------------------------------------------------------------------------------