This commit includes: - Django backend with multi-tenancy (django-tenants) - React + TypeScript frontend with Vite - Platform administration API with role-based access control - Authentication system with token-based auth - Quick login dev tools for testing different user roles - CORS and CSRF configuration for local development - Docker development environment setup 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
8 lines
15 KiB
XML
8 lines
15 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1730 1100" fill="#2B5B5F">
|
|
<path d="M969.645508,771.667175 C983.734009,760.932678 998.024170,750.981995 1011.135925,739.665955 C1020.239868,731.809021 1027.811401,722.153137 1035.890625,713.142212 C1039.635864,708.964966 1042.988037,704.431946 1046.455933,700.011230 C1047.427979,698.771973 1048.177979,697.358459 1048.318481,695.266968 C1043.233154,698.355286 1038.068848,701.321533 1033.076172,704.552979 C1011.285095,718.656555 987.633118,729.002747 963.865662,739.154541 C926.816467,754.979309 888.330383,766.524841 849.335266,776.096252 C816.661194,784.116150 783.571899,790.540527 750.510559,796.854858 C725.879822,801.559082 701.040466,805.235657 676.219849,808.862976 C650.730042,812.588013 625.020874,814.936829 599.640015,819.253784 C561.088013,825.810913 522.543823,832.670288 484.360413,841.058594 C453.594025,847.817566 423.045654,856.010376 393.000458,865.471924 C368.607147,873.153687 344.985138,883.370483 321.251038,893.028137 C306.543671,899.012756 291.840790,905.266846 277.895966,912.805786 C257.393433,923.890198 237.239243,935.709290 217.557373,948.193909 C200.561569,958.974670 183.671112,970.190491 168.118774,982.907349 C150.190521,997.567078 133.454575,1013.749817 116.860298,1029.946777 C109.343819,1037.283325 103.407921,1046.241699 96.785301,1054.488647 C95.963615,1055.511963 95.329086,1056.685547 94.607811,1057.789551 C94.087418,1057.428833 93.567024,1057.068237 93.046631,1056.707520 C95.143036,1051.902710 97.038155,1046.997681 99.369362,1042.309692 C112.070229,1016.768616 126.605263,992.265686 143.560577,969.362183 C154.371017,954.759155 166.268524,940.905212 178.350021,927.312134 C195.337433,908.199402 214.588501,891.460449 234.166809,874.999146 C257.180664,855.649292 281.649719,838.427429 307.573792,823.472717 C336.247131,806.932129 365.478760,791.285645 396.623840,779.614136 C412.184509,773.782776 427.375671,766.898743 443.113495,761.622986 C464.384369,754.492371 485.846008,747.786011 507.540192,742.096313 C540.973694,733.327393 574.554077,725.033386 608.300049,717.568359 C634.070862,711.867554 660.204224,707.813232 686.158875,702.934082 C711.461548,698.177490 736.731262,693.245178 762.037231,688.506470 C773.996765,686.266907 786.117065,684.782654 797.967041,682.087830 C813.228760,678.617249 828.417358,674.693970 843.413147,670.214722 C868.431335,662.742126 893.816467,656.055481 918.046326,646.500244 C947.249329,634.983948 975.782898,621.687195 1001.597900,603.148926 C1019.638672,590.193542 1038.112427,577.639526 1057.397705,566.673218 C1078.458008,554.697449 1100.290771,544.266785 1123.296509,535.835693 C1153.968750,524.595032 1185.606567,517.348511 1216.895020,508.623566 C1228.170898,505.479218 1239.672241,503.140717 1251.080444,500.476807 C1252.144653,500.228271 1253.280396,500.285614 1255.739990,500.096741 C1253.853149,502.287323 1252.808350,503.648651 1251.613892,504.862793 C1244.387573,512.208191 1237.151611,519.453979 1230.673462,527.585815 C1218.089600,543.381836 1207.873535,560.547852 1199.297607,578.655396 C1191.381104,595.370850 1184.464722,612.563843 1177.247925,629.605774 C1168.326660,650.672302 1158.144165,671.075928 1146.017334,690.496033 C1135.214478,707.795898 1123.201904,724.184570 1109.329102,739.153809 C1098.717407,750.604187 1088.405151,762.391296 1077.100098,773.122986 C1066.321655,783.354675 1054.340088,792.309082 1043.048340,802.012085 C1022.812439,819.400757 999.674561,832.426270 976.316162,844.731873 C956.019775,855.424316 934.888245,864.927551 913.308838,872.683411 C889.113220,881.379639 864.222961,888.452698 839.208069,894.452332 C822.112122,898.552673 804.305725,899.769409 786.777283,901.957336 C776.820679,903.200073 766.784119,903.802368 755.687805,904.790649 C757.714539,906.218933 759.003662,907.369080 760.489807,908.138672 C783.668091,920.140076 807.284790,931.020691 832.462219,938.359375 C855.906860,945.193054 879.583191,951.030334 903.823364,953.736511 C919.614380,955.499451 935.650452,956.242859 951.530090,955.794312 C985.213318,954.842834 1018.249756,949.116272 1050.425049,938.980957 C1090.859131,926.244141 1128.350220,907.577209 1162.281494,882.076538 C1172.054565,874.731628 1181.528320,866.922607 1190.604370,858.733459 C1201.177246,849.194031 1211.503418,839.328491 1221.327759,829.023743 C1238.017578,811.517944 1253.516968,792.980530 1265.936401,772.111816 C1274.501709,757.719238 1283.092041,743.320740 1291.001709,728.565918 C1296.228638,718.815796 1300.504639,708.528442 1304.793457,698.308411 C1315.707275,672.301758 1322.893799,645.154175 1327.839600,617.478088 C1330.420410,603.036621 1331.911011,588.336731 1332.869995,573.686584 C1333.878906,558.275757 1334.407471,542.754089 1333.765503,527.338318 C1333.190186,513.526611 1330.652344,499.801727 1329.257446,486.010529 C1329.129883,484.748444 1330.735107,482.487030 1332.013306,482.032196 C1347.430786,476.546417 1363.083862,471.698395 1378.384033,465.913452 C1395.856812,459.307068 1413.124390,452.132050 1430.313843,444.811279 C1442.720703,439.527374 1455.204834,434.247284 1467.033081,427.821472 C1488.682861,416.060059 1510.133179,403.880432 1531.183105,391.080017 C1553.192505,377.696136 1573.413086,361.740723 1592.717285,344.700775 C1602.850830,335.755951 1612.603027,326.373413 1622.384766,317.039001 C1625.733643,313.843140 1628.616577,310.162659 1631.782593,306.769073 C1632.601929,305.891022 1633.686157,305.260193 1634.648682,304.515747 C1634.988770,304.771484 1635.328979,305.027191 1635.669067,305.282928 C1633.291504,309.465271 1631.207642,313.850372 1628.485229,317.794739 C1616.850464,334.652039 1605.817017,352.011719 1593.041870,367.969421 C1581.144165,382.831451 1568.030884,396.904633 1554.180420,409.977081 C1532.040161,430.873718 1508.570923,450.362701 1482.932861,466.917206 C1461.684692,480.637024 1440.099609,493.861084 1418.288452,506.665344 C1412.599854,510.004883 1412.874390,514.199585 1413.025269,519.129028 C1413.335327,529.252197 1413.837646,539.372375 1413.970093,549.497498 C1414.420044,583.932129 1409.491089,617.730225 1402.481934,651.371643 C1396.489746,680.130859 1388.232544,708.150024 1376.739746,735.113281 C1365.900146,760.543701 1354.243652,785.647095 1338.789673,808.736450 C1329.595947,822.472168 1320.811768,836.521423 1310.929565,849.746643 C1299.263916,865.358582 1287.147461,880.676086 1272.680908,893.951477 C1267.312744,898.877502 1262.994141,904.960815 1257.552490,909.790405 C1244.686401,921.209106 1231.741821,932.582581 1218.245483,943.234863 C1206.325317,952.643250 1194.096924,961.842163 1181.146973,969.724365 C1158.948486,983.235718 1135.947021,995.433838 1111.749023,1005.062805 C1097.940796,1010.557495 1084.021851,1016.069458 1069.709839,1019.932617 C1049.345581,1025.429443 1028.718628,1030.276367 1007.929993,1033.773071 C991.841858,1036.479248 975.354248,1037.157715 959.006348,1037.869873 C944.148682,1038.517090 929.177429,1038.851318 914.369873,1037.769165 C895.950500,1036.422974 877.505005,1034.281860 859.326843,1031.045898 C829.348206,1025.709351 800.144714,1017.064575 771.925598,1005.670044 C756.608765,999.485352 741.639099,992.105408 727.324646,983.855835 C708.068115,972.758301 689.407349,960.583984 670.880676,948.284729 C663.679993,943.504333 657.602966,937.049927 650.901428,931.493958 C644.098328,925.853760 636.800903,920.762085 630.356140,914.748413 C619.933044,905.022461 609.957886,894.810120 599.945679,884.653320 C596.250183,880.904480 592.985229,876.731201 588.732971,871.842102 C593.234985,871.136841 596.812500,870.434021 600.423706,870.036133 C613.563843,868.588135 626.724976,867.327454 639.859131,865.829712 C649.863892,864.688843 659.866699,863.473877 669.822815,861.976013 C687.452637,859.323730 705.044434,856.420166 722.655457,853.642822 C738.960144,851.071533 755.332520,848.871826 771.558411,845.876282 C788.103882,842.821716 804.617798,839.442139 820.942810,835.388611 C838.621033,830.999084 856.189697,826.061890 873.562744,820.590759 C883.364563,817.504089 892.799072,813.130615 902.178589,808.853394 C914.899170,803.052734 927.670898,797.269348 939.927246,790.575073 C950.102966,785.017090 959.565613,778.153442 969.645508,771.667175 M1050.581421,694.050720 C1050.730957,693.806946 1050.880493,693.563171 1051.029907,693.319275 C1050.812500,693.437988 1050.595093,693.556763 1050.581421,694.050720z"/>
|
|
<path d="M556.660950,457.603760 C541.109375,531.266846 547.394165,603.414612 568.399292,675.217285 C432.503021,704.469421 306.741730,754.212341 199.911194,846.845520 C200.479172,845.300049 200.602173,844.107422 201.242157,843.353882 C209.385620,833.765381 217.337875,823.994263 225.877579,814.768311 C234.207504,805.768921 242.989990,797.166687 251.896179,788.730408 C257.379120,783.536743 263.590637,779.120728 269.241333,774.092896 C273.459808,770.339478 276.960907,765.728882 281.376740,762.257324 C297.837646,749.316223 314.230652,736.249023 331.255981,724.078125 C345.231110,714.087769 359.912170,705.048035 374.584686,696.085144 C382.450134,691.280396 391.044617,687.685791 399.150726,683.253601 C407.072968,678.921997 414.597321,673.833801 422.642975,669.762817 C438.151398,661.916077 453.798492,654.321594 469.600006,647.085205 C477.539642,643.449280 478.113831,642.479065 476.519012,633.766968 C474.589203,623.224731 473.630249,612.508850 471.947601,601.916382 C467.749847,575.490784 468.654633,548.856323 469.237122,522.316833 C469.602295,505.676849 471.616699,488.988892 474.083252,472.500793 C477.059357,452.606354 480.060059,432.564514 485.320496,413.203339 C491.148651,391.752808 499.099060,370.831879 506.971741,350.000183 C512.325867,335.832855 518.620361,321.957916 525.397888,308.404053 C541.421509,276.359467 560.144958,245.828873 582.862244,218.156967 C598.004089,199.712769 614.822388,182.523621 631.949951,165.861969 C652.972046,145.411667 676.340942,127.695229 701.137573,111.953148 C726.902954,95.596024 753.783325,81.411240 782.541138,71.040688 C797.603638,65.608902 812.617126,59.820137 828.057861,55.716591 C845.892639,50.976776 864.121277,47.634624 882.284790,44.254494 C890.218506,42.778072 898.403564,42.346916 906.495300,42.086170 C924.443237,41.507816 942.445129,40.435017 960.349243,41.242741 C979.963135,42.127602 999.561890,44.377670 1019.039673,46.986061 C1043.176270,50.218334 1066.758545,56.365486 1089.506470,64.964005 C1106.661865,71.448593 1123.305542,79.342972 1139.969482,87.057976 C1162.813843,97.634354 1183.941406,111.123840 1204.113037,126.138229 C1207.003540,128.289703 1209.946899,130.370087 1213.763916,133.133530 C1216.783447,129.931229 1220.327026,126.716408 1223.223755,122.997650 C1231.400269,112.500671 1239.273560,101.768028 1247.343994,91.187546 C1251.051270,86.327263 1254.881470,81.556633 1258.788696,76.855797 C1259.760620,75.686508 1261.248413,74.945900 1262.499023,74.008209 C1263.292480,75.345688 1264.457031,76.590347 1264.818726,78.035873 C1267.046143,86.937248 1268.891724,95.937119 1271.242432,104.803978 C1275.496948,120.851143 1280.156372,136.791153 1284.390381,152.843521 C1289.730957,173.090820 1294.707275,193.434189 1300.038086,213.684174 C1305.998291,236.325089 1312.179443,258.907806 1318.265015,281.515717 C1318.472290,282.285461 1318.685059,283.053680 1319.249390,285.117157 C1249.010864,270.419495 1179.575439,255.889877 1109.182129,241.159790 C1125.300659,224.247345 1141.057739,207.714233 1157.271729,190.701782 C1151.530518,186.784927 1146.192871,182.681778 1140.429565,179.305191 C1127.437134,171.693329 1114.523315,163.859375 1101.056763,157.163300 C1072.803589,143.114868 1043.187866,132.633057 1012.025146,127.306679 C996.903809,124.722130 981.545776,123.292236 966.235352,122.115311 C953.661621,121.148743 940.985535,120.787796 928.380005,121.118324 C905.687134,121.713341 883.266846,125.033134 861.164490,130.156235 C827.750183,137.901321 796.099426,150.481354 765.943542,166.659683 C744.045410,178.407761 723.100586,191.717087 704.741150,208.715820 C692.812561,219.760330 680.168945,230.111618 668.980225,241.854492 C657.360962,254.049179 646.193909,266.898956 636.478516,280.629303 C622.844910,299.897369 609.775757,319.708069 598.278931,340.299286 C589.203308,356.553925 582.410522,374.153534 575.426636,391.487335 C567.199646,411.906586 561.340576,433.110779 557.061401,454.725311 C556.900940,455.536224 556.898621,456.378479 556.660950,457.603760z"/>
|
|
<path d="M1706.087402,107.067314 C1703.089111,115.619484 1700.499512,124.342247 1697.015747,132.691925 C1686.536865,157.806900 1674.552490,182.225861 1658.662109,204.387024 C1646.541138,221.290833 1633.860840,237.859802 1620.447754,253.749130 C1610.171387,265.922516 1598.887085,277.376678 1587.116699,288.127747 C1567.458008,306.083740 1546.417847,322.320587 1524.483398,337.552246 C1495.366455,357.771515 1464.521729,374.787689 1432.470215,389.522156 C1408.761597,400.421356 1384.338989,409.873322 1359.856445,418.950348 C1338.651123,426.812286 1317.005859,433.538574 1295.377563,440.189545 C1282.541626,444.136749 1269.303589,446.756866 1256.353271,450.357635 C1243.725464,453.868683 1231.256226,457.945312 1218.677490,461.637756 C1192.216675,469.405334 1165.581299,476.616241 1139.306396,484.964813 C1122.046509,490.448944 1105.143555,497.158905 1088.355957,503.995453 C1073.956177,509.859589 1059.653931,516.113403 1045.836670,523.221436 C1027.095337,532.862488 1009.846802,544.765564 994.656799,559.637390 C986.521912,567.601807 977.590271,574.817322 968.586731,581.815613 C950.906799,595.557678 919.261353,591.257507 902.949524,575.751221 C890.393311,563.815002 883.972961,548.799927 878.270020,533.265137 C872.118042,516.506958 862.364990,502.109009 851.068176,488.567474 C837.824646,472.692474 824.675781,456.737396 811.315308,440.961517 C803.714661,431.986664 795.703918,423.360413 788.002930,414.468903 C778.470581,403.462769 769.106140,392.311340 759.596680,381.285126 C752.240295,372.755371 744.606201,364.460114 737.400879,355.806427 C730.120544,347.062592 727.078613,337.212921 730.571777,325.824554 C736.598145,306.177765 760.405457,299.432281 775.159790,313.874237 C789.284302,327.699738 802.566406,342.385803 816.219543,356.692902 C816.564697,357.054535 816.916931,357.409424 817.268250,357.765015 C845.125427,385.956726 872.707642,414.429291 901.026123,442.149719 C908.467834,449.434296 918.068054,454.575775 926.906189,460.350739 C933.051758,464.366333 939.634460,467.707123 945.928894,471.503540 C948.467102,473.034454 950.404358,472.612885 952.644043,470.884766 C972.771118,455.355255 994.347229,442.156677 1017.344299,431.336121 C1045.954834,417.874298 1075.032959,405.539398 1105.177612,395.868073 C1127.357422,388.752136 1149.351074,380.949371 1171.792480,374.778931 C1209.532104,364.402008 1247.646118,355.393494 1285.443359,345.217163 C1317.973999,336.458740 1350.391968,327.239716 1382.656372,317.547119 C1412.278198,308.648407 1441.114014,297.585785 1469.434570,285.016663 C1511.778687,266.223450 1552.020386,243.841415 1590.082031,217.493744 C1608.183228,204.963440 1625.881104,191.914856 1641.874268,176.685043 C1649.680786,169.250977 1658.483398,162.733627 1665.537964,154.666931 C1679.129517,139.125244 1691.799438,122.777374 1705.282837,106.722069 C1705.838623,106.809341 1705.963135,106.938339 1706.087402,107.067314z"/>
|
|
<path d="M1705.527710,106.486694 C1705.630859,105.936501 1705.907837,105.568420 1706.218628,105.231407 C1706.297485,105.145935 1706.483765,105.159477 1706.930664,105.055130 C1706.771118,105.730949 1706.643921,106.269272 1706.302246,106.937462 C1705.963135,106.938339 1705.838623,106.809341 1705.527710,106.486694z"/>
|
|
<path d="M196.850372,849.515076 C196.898865,849.852539 196.767776,850.076172 196.636688,850.299805 C196.648056,850.000305 196.659409,849.700745 196.850372,849.515076z"/>
|
|
</svg>
|