horiz0n-zero / 42-home Goto Github PK
View Code? Open in Web Editor NEWUnofficial 42 Network repo for the 42Home IOS application
License: GNU General Public License v3.0
Unofficial 42 Network repo for the 42Home IOS application
License: GNU General Public License v3.0
I think it's a bad handled API result, but just in case you need it:
App Version: 1.0.5
Device: iPhone 12, running iOS 16.0.2
When entering a User's profile, the score of the Exam is 100
if the Exam didn't even start yet.
In addition to that, while the Project' scores are OK, the color that determines if those projects are validated or not (green / red) might not be correct. Note: I've only seen this behaviour on Students doing the Piscine. Not sure if this issue occurs also on Students on different Cursus.
I assume there is a bad reading of the API fetch result.
The flag validated
tells you wheter the project is validated or not (wheter the color should be green or red).
You can check it out on the API documentation: https://api.intra.42.fr/apidoc/2.0/projects_users/index.html
App Language was 'Spanish' when the Screenshots were taken.
The Users' login is not shown to protect their privacity.
Note that the following projects are not correctly shown:
* C Piscine Exam 01 -> (not started yet)
* C Piscine Shell 01 -> (should be green, project appears as validated on the Intra)
My campus added new iMacs in the cluster so they had to rearrange the map on the intranet. It's already been updated on the website but not on the app. (1337 - Med)
Lot of people don't understand why some selection are hidden; so remove it
Make AdjustableParametersProviderDelegate describing the support of the export option.
The export option will be a button available through AdjustableParametersProviderViewController. By clicking the button:
A DynamicAlert explain the feature and purpose: Cancel or Yes
By clicking Yes:
the app delegate will generate a plain text describing all visible elements in the delegate page, the AdjustableParametersProviderViewController will then provide a plain text file ready for exporting.
Warning : internal error cookies are invalid https://profile.intra.42.fr
Because finding a particular evant is complicated;
due to the fact to you can only see recent events from the Events controller or
from your subscribed events only or
the history from another user
A new page that provide an infinite event page with differents options should be created in the Research controller
Need new fields for completing filter in a page ( like user list or events list )
if the user stay on the page; and make changes into his intranet; changes are not considered by the app; user data should be refreshed in a certain way
I am not familiar with Swift App Development, and because I didn't see any folder storing all the assets, I didn't create a PR.
Also, I tried clearing the cache of the coalitions inside the App, and the coalitions didn't appear, so I guessed this is something that has to be done manually. So, if that is the case, these are the new coalitions:
ID: 398
Cover Image: https://cdn.intra.42.fr/coalition/cover/398/04.jpg
Main color: #C2301D
<svg xmlns="http://www.w3.org/2000/svg" id="Capa_1" data-name="Capa 1" viewBox="0 0 2000 2000" class="coalition-flag--icon" style="fill: #fff">
<defs>
<style>
.cls-1 {
fill: none;
stroke: #fff;
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 40px;
}
</style>
</defs>
<g id="IGNISARIA">
<polyline class="cls-1" points="190.18 1465.46 999.28 57.62 1811.41 1478.94 390.96 1478.94 987.31 516.99 1922.29 1949.43 654.67 1335.1 987.31 864.61"></polyline>
</g>
</svg>
Example User: sultan
ID: 399
Cover Image: https://cdn.intra.42.fr/coalition/cover/399/02.jpg
Main color: #9FC131
<svg xmlns="http://www.w3.org/2000/svg" id="Capa_1" data-name="Capa 1" viewBox="0 0 2000 2000" class="coalition-flag--icon" style="fill: #fff">
<defs>
<style>
.cls-1 {
fill: #fff;
stroke: #fff;
stroke-miterlimit: 10;
stroke-width: 7px;
}
</style>
</defs>
<g id="TIAMANT">
<path class="cls-1" d="m805.15,586.6c72.8-118.61,118.97-245.64,132.04-382.65,1.05-11.03,3.54-21.96,5.7-32.88,1.59-8.04.83-18.31.2-28.04h-98.19c-.17,8.83-1.04,19.86-2.04,33.73-10.56,145.78-60.77,278.33-144.77,400.42-87.04,126.51-199.52,223.07-336.77,290.83l46.22,80.06c22.58-11.54,44.87-23.83,66.79-37.02,137.66-82.85,248.88-190.96,330.81-324.44Z"></path>
<path class="cls-1" d="m406.32,145.73c-22.74,163.1-114.74,288.76-256.01,356.77l45.96,79.61c58.11-28.73,110.78-67.47,158.19-116.37,88.93-91.72,135.77-200.16,144.9-322.72h-92.72c-.11.9-.19,1.78-.32,2.71Z"></path>
<path class="cls-1" d="m1516.24,188.89c29.22,172.45,147.81,320.17,308.81,397.54l45.51-78.83c-89.1-40.06-159.13-106.54-210.9-195.98-29.93-51.7-47.88-108.38-50.6-168.61h-91.44c.05,14.94-3.77,31.83-1.39,45.87Z"></path>
<path class="cls-1" d="m714.99,921.88c0-9.57,0-19.15,0-35.51-32.55,25.69-60.06,47.42-87.6,69.12-8.37,6.59-6.55,15.52-6.55,24.11.06,112.7.08,225.4.12,338.1l93.91,162.66c.04-186.16.08-372.32.12-558.47Z"></path>
<path class="cls-1" d="m716.91,163.13c.55-7.77,1.05-14.35,1.63-20.11h-92.75c.26,12.53-2.08,29.62-5.71,53.14-34.56,224.43-159.29,386.47-363.72,490.03l44.91,77.78c73.4-36.96,140.65-86.01,201.74-146.85,127.9-127.39,201.44-278.09,213.9-454Z"></path>
<path class="cls-1" d="m39.93,311.32l50,86.61c100.08-47.52,171.74-141.71,186.81-254.9h-105.16c-13.65,73.09-61.74,136.14-131.65,168.29Z"></path>
<path class="cls-1" d="m492.52,1043.31c-8.06,3.4-16.05,6.85-24.01,10.31l26.02,45.07c0-8.85,0-17.69,0-26.54,0-8.64-1.18-17.27-2.02-28.84Z"></path>
<path class="cls-1" d="m1167.06,792.08c.06-28.3-5.43-51.74-24.27-74.73-22.81-27.83-40.93-59.06-62.83-91.39-13.91,17.18-8.42,33.58-8.43,48.46-.31,405.52-.53,811.05.35,1216.57l94.64-163.92c-.05-311.66-.09-623.32.55-934.98Z"></path>
<path class="cls-1" d="m1390.99,1038.47c1.59-75.74-39-109.98-97.36-150.7,0,208.17-.12,414.12-.02,619.14l93.94-162.71c.37-101.93,1.3-203.84,3.43-305.73Z"></path>
<path class="cls-1" d="m1743.33,181.4c19.98,93.08,94.27,178.86,188.14,220.72l49.79-86.23c-59.53-26.22-112.43-78.87-131.83-138.52-4.58-14.08-8.17-25.31-10.38-34.34h-97.18c.6,12.92-.98,26.97,1.46,38.37Z"></path>
<path class="cls-1" d="m1552.41,1058.67c-3.89-1.91-7.81-3.74-11.69-5.69-18.3-9.2-25.92-7.68-25.67,13,.23,19.1.16,38.21.06,57.31l37.31-64.62Z"></path>
<path class="cls-1" d="m944.64,672.29c0-18.21,0-36.42-7.76-57.08-23.49,33.65-45.71,68.18-70.9,100.67-18.69,24.1-24.42,49.09-24.34,78.65.8,302.46.79,604.92,1.16,907.39l101.6,175.98c.07-401.87.16-803.74.24-1205.61Z"></path>
<path class="cls-1" d="m1294.98,190.85c38.23,259.6,194.26,465.69,425.31,577.04l43.74-75.76c-77.44-37.32-146.75-89.02-208.1-154.15-105.73-112.24-161.15-245.26-168.97-394.96h-89.43c-.71,15.5-4.7,33.21-2.55,47.83Z"></path>
<path class="cls-1" d="m1293.39,704.62c89.6,105.55,196.54,187.97,320.4,247.74l45.69-79.14c-46.72-22.97-91.79-50.01-135.13-81.31-154.97-111.91-261.25-256.33-318.86-431.52-23.2-70.56-38.5-142.89-39.5-217.35h-94.05c5.39,210.56,81.95,397.28,221.44,561.59Z"></path>
</g>
</svg>
Example User: bimo
ID: 400
Cover Image: https://cdn.intra.42.fr/coalition/cover/400/03.jpg
Main color: #034159
<svg xmlns="http://www.w3.org/2000/svg" id="Capa_1" data-name="Capa 1" viewBox="0 0 2000 2000" class="coalition-flag--icon" style="fill: #fff">
<defs>
<style>
.cls-1 {
fill: #fff;
}
.cls-1, .cls-2, .cls-3, .cls-4 {
stroke: #fff;
stroke-width: 40px;
}
.cls-1, .cls-4 {
stroke-miterlimit: 10;
}
.cls-2 {
stroke-linejoin: bevel;
}
.cls-2, .cls-3 {
stroke-linecap: round;
}
.cls-2, .cls-3, .cls-4 {
fill: none;
}
.cls-3 {
stroke-linejoin: round;
}
</style>
</defs>
<g id="MARVENTIS">
<circle class="cls-3" cx="1011.76" cy="1009.95" r="961.02"></circle>
<path class="cls-2" d="m1548.21,864.17s-150.61-211.03-329.65-288.44c-325.85-140.9-633.6-10.06-656.25,0-69.21,30.74-237.49,108.33-344.91,296.07-111.96,195.67-111.95,424.04-45.78,589.1,141.93,354.07,548.39,535.54,879.06,512.79,665.4-45.78,796.65-494.47,840.91-573.83"></path>
<path class="cls-4" d="m1517.68,857.3c-46-46.57-142.59-137.27-256.39-187.72-75.71-33.56-139.47-47.17-169.4-52.65-52.24-9.56-215.64-37.28-400.62,36.63-59.73,23.87-156.99,62.73-238.08,160.25-88.92,106.94-113.63,245.22-125.91,331.94-30.24,213.63,44.26,599.02,364.75,777.58"></path>
<path class="cls-3" d="m1554.31,871.8c-32.68-23.03-168.12-100.03-247.24-115.99-27.03-5.45-105.89-33.33-171.69-22.13-145.85,24.82-229.59,134.71-244.95,155.67-71.43,97.45-76.48,198.52-77.83,235.79-6.28,173.09,91.08,292.32,116.75,322.78,85.37,101.31,187.65,139.08,247.24,160.25,129.82,46.1,512.02,81.65,689.06-150.33"></path>
<path class="cls-3" d="m1548.49,877.98c-158.72-100.73-336.94-164.3-386.21-167.77-25.97-1.83-123.63-2.36-210.04,21.18-130.26,35.48-249.63,143.14-309.05,277-93.38,210.37-3.41,406.02,18.31,453.27,100.03,217.54,298.67,299.36,363.99,325.07,173.81,68.41,468.53,46.55,599.02-26.71"></path>
<circle class="cls-1" cx="1705.83" cy="394.87" r="201.88"></circle>
</g>
</svg>
Example User: rama
ID: 401
Cover Image: https://cdn.intra.42.fr/coalition/cover/401/01.jpg
Main color: #E39F0B
<svg xmlns="http://www.w3.org/2000/svg" id="Capa_1" data-name="Capa 1" viewBox="0 0 2000 2000" class="coalition-flag--icon" style="fill: #fff">
<defs>
<style>
.cls-1, .cls-2 {
stroke: #fff;
stroke-miterlimit: 10;
stroke-width: 40px;
}
.cls-1, .cls-3 {
fill: #fff;
}
.cls-2 {
fill: none;
}
.cls-3 {
stroke-width: 0px;
}
</style>
</defs>
<g id="ZEFIRIA">
<circle class="cls-2" cx="1012.09" cy="1444.81" r="515.92"></circle>
<circle class="cls-2" cx="1012.09" cy="1311.42" r="644.27"></circle>
<circle class="cls-2" cx="1012.09" cy="1178.76" r="776.93"></circle>
<path class="cls-3" d="m1012.09,1955.68c562.34,1.02,985.05-520.23,868.48-1070.13-84.35-407.7-452.06-706.67-868.48-704.58-554.24-.45-974.35,506.22-872.35,1050.9,75.51,416.49,449.03,726.32,872.35,723.81h0Zm0,0c-328.09,2.03-639.72-183.68-796.02-471.89C-112.89,877.27,321.82,143.33,1012.1,140.99c575.67-.28,1006.46,530.78,888,1093.98-85.85,416.63-462.43,723.02-888,720.71h0Z"></path>
<circle class="cls-2" cx="1012.09" cy="1553.34" r="407.39"></circle>
<circle class="cls-2" cx="1012.09" cy="1637.93" r="322.8"></circle>
<circle class="cls-2" cx="1012.09" cy="1707.12" r="253.61"></circle>
<circle class="cls-2" cx="1012.09" cy="1760.33" r="200.4"></circle>
<circle class="cls-2" cx="1012.09" cy="1789.61" r="151.28"></circle>
<circle class="cls-1" cx="1012.09" cy="1835.99" r="116.51"></circle>
<circle class="cls-1" cx="236.08" cy="1095.75" r="93.42"></circle>
<circle class="cls-1" cx="1358.16" cy="761.76" r="80.03"></circle>
<circle class="cls-1" cx="1011.33" cy="165.28" r="135.59"></circle>
<circle class="cls-1" cx="1340.18" cy="1329.89" r="72.86"></circle>
</g>
</svg>
Example User: yzma
internal error The operation couldn't be completed. (home42.HomeApi.RequestError error 1.) https://api.intra.42.fr/oauth/token
When i access to a user profil; i see the login; and if i click into it; i can see the user full name
Now by default; we should see user full name instead of login;
and when i click a third time; we can see the primary user title if available.
Need a new option in settings:
'default user text':
'Full name' ( default )
'login'
'title'
Add by default title if the user is a staff ?
Hi, could you please update cluster 3 at Prague campus? We have added new stations here. Thanks!
https://cdn.intra.42.fr/cluster/image/197/cluster_3.svg
Some resources saved in .json files are useless, for exemple:
An api root like /toto, return an array of Toto object containing id, name and description. But the Toto Model in the app only require id and name. the goal is to filtering the Toto object from /toto, only saving in /res/json/toto.json app folder an array of toto object containing id and name.
This cause accelerating app startup and make the app more lighter. In particular for the /projects root which create a 24Mb file.
For each item in the shop; campus name should be visible
And in the top; a campus selector filter
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.