á€á
á¬áááºážá¡ááŒá±á¬ááºáž
áá«áááºáá±á¬ á¡áá¬áá»á¬áž
á
á
áºááŸááºáá±á¬ áá±á¬ááºááœááºáá¯ááºáá±á¬ááºáá»áẠ(backend) ááŒáá·áº á¡áá±á¬ááºá¡áá¶á·áá±ážáá¬ážááá·áº á¡ááºááºáá
áºáá¯ááᯠááẠáááŸááá«áááºá áááºážááœáẠá¡áá±á¬ááºá¡áá¬ážá
áá
á
áºááŒááºážá áááºááœá±á·á¡áá¯á¶ážááŒá¯ááŸá¯ááœáẠáá¶ááá¯ááºáááºááŸáá
á±ááẠáá±ážááœá²áá¬ážáá±á¬ áá±áá¬áá±á·á
áºá ááŸá±á·áá»ááºááŸá¬á
ᬠ(frontend) á á
áááºáá»á¡á¬ážáá¬ážááá¯ááºááá·áº API ááŸáá·áº á
áááºáá»áá¯á¶ááŒááºá
áœá¬ ááŒááºáááºáááºáá±á¬ááºááá¯ááºáá±á¬ ááŒáá·áºáá»ááºááŸá¯ááá¯á· áá«áááºáááºá á€áááºááŸá¬ ááá¯ááá¯ááá¯áᬠá¡á
á¬ážááá¯ážáá¬ážááá·áº ááŒáá¯áááºááŒá¯áá¯ááºáá¬ážáá±á¬ áááºážááááẠááá¯ááºáá«á
áá»áœááºá¯ááºááá¯á·á áá»ááºážáááºáá¯á¶
á¡áá±á¬áá·áºááœáá·áºááŒááºážá á¡ááááá¯ááºáá±á¬ááºáá»ááºááᯠááŒá¯áá¯ááºááŒááºážááŸáá·áº ááááºáá
áºáá¯ááᯠááŒááºááœá±á·áááŒááºážáá²á·ááá¯á·áá±á¬ áá¯á¶ážá
áœá²áá°áá
áºáŠáž á¡á
á០á¡áá¯á¶ážá¡áá áá±á¬ááºááœááºááá¯ááºááá·áº á¡áá±ážáááºáá¯á¶ážáá±á¬ ááŒáá·áºá
á¯á¶ááá·áº áááºážááŒá±á¬ááºážá០áá¯ááºáááºážááᯠá
áááºáá«áááºá ááá¯á¡ááá¯ááºážááᯠá
ááºážáááºááá·áº áááºáááºážáá»áẠ(staging environment) ááá¯á· á¡á
á±á¬ááá¯ááºážáááºážá ááá·áºááœááºážáá¬ážáá±á¬ááŒá±á¬áá·áº á¡ááŒá±á¡áá±áááºááŒáá»ááºáááºáááºá¡á
á¬áž á
á
áºáá±ážááẠáááºááœá±á·áá¯ááºáá±á¬ááºááá¯ááºáá±á¬ áá±á¬á·ááºáá²ááºáá
áºáá¯ááᯠááẠáááŸááááºááŒá
áºáááºá ááá¯áá±áá¬ááŸáá
áºááá·áº áá»áœááºá¯ááºááá¯á·ááẠáá°áá®áá±á¬áá¯á¶á
á¶á¡ááá¯ááºáž áááºáááºáá¯ááºáá±á¬ááºáá«ááẠ- áá±á¬ááºáá¯á¶ážá
áœá²áá°áá¯ááºáááºážáá¬áááºááᯠááá°ááŒááºážá á¡ááœáŸá¬ááá¯ááºážááœáẠáááºáá±á¬ááºááŒááºážá á
ááºážáááºááŒááºážááŸáá·áº ááŸá±á·áááºááŒááºážááá¯á· ááŒá
áºáá«áááºá
ááŸá±á·áá»ááºááŸá¬á
ᬠ(frontend) ááœáẠTypeScript ááŸáá·áºá¡áá° Reactá áááºáááá±áá±á¬ áááá¯áááºá¡ááŒá±á¡áá±á¡á
á¬áž áá¬áá¬á¡ááŒá±á¡áá±ááᯠá
áá
áºááá» ááá¯ááºááœááºááŒááºážááŸáá·áº ááááºááœááºážáá® á¡áááºááŒá¯á
á
áºáá±ážááá·áº áá±á¬ááºáá»á¬ážááᯠáá»áœááºá¯ááºááá¯á· á¡áá¯á¶ážááŒá¯áá«áááºá áá±á¬ááºááœááºáá¯ááºáá±á¬ááºáá»áẠ(backend) ááœáẠá¡áá»áá¯ážá¡á
á¬ážáááºááŸááºáá¬ážáá±á¬ áá±á¬ááºážááá¯ááŸá¯ááŸáá·áº áá¯á¶á·ááŒááºááŸá¯ áá±á¬áºáááºáá»á¬ážáá«áááºááá·áº FastAPI ááá¯á·ááá¯áẠDjango RESTá áá¬ážááŸááºážááááºážáá»á¯ááºáá¬ážáá±á¬ áá°ážááŒá±á¬ááºážááŸá¯áá»á¬áž (migrations) ááŸáá·áº ááá¯ááá¯ááŸá±ážááœá±ážáá±á¬ áá¯ááºáááºážáá¬áááºáá»á¬ážá¡ááœáẠáá±á¬ááºáá¶á¡áá¯ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá«áááºá áá±áá¬áá±á·á
áºá¡ááœáẠá¡ááŒá¬ážáá
áºáá¯ááᯠááœá±ážáá»ááºááẠá¡ááŒá±á¬ááºážááŒáá»áẠáááŸááá«á áá¯á¶ááŸááºá¡á¬ážááŒáá·áº Postgres ááᯠá¡áá¯á¶ážááŒá¯ááŒá®ážá áá±ážááŒááºážááŸá¯áá»á¬áž á¡ááŸááºáááẠááá¯á¡ááºááá·áºáá±áá¬áá»á¬ážááœáẠá¡ááœáŸááºážáá»á¬áž (indexes) ááᯠááá·áºááœááºážáá¬ážáá«áááºá
á
áááºáá»áá¯á¶ááŒááºáááŸá¯á¡áá±á«áº á¡á¬áá¯á¶á
áá¯ááºááŒááºáž
á
ááºážáááºááŸá¯áá»á¬ážááẠáá¡á±á¬ááºááŒááºáá«á á¡áá±ážá¡ááŒá®ážáá¯á¶ážááŒá
áºááá·áº á¡ááá¯ááºážáá»á¬ážááŒá
áºáá±á¬ á¡áá±á¬ááºá¡áá¬ážá
áá
á
áºááŒááºážá ááœá±áá±ážáá»á±ááŸá¯áá»á¬ážááŸáá·áº áá±áá¬áá±ážáá¬ážááŸá¯áá»á¬ážááᯠá¡ááááá¬ážáá«áááºá á¡ááŸá¬ážáá»á¬ážááᯠá¡áá±ážááŸáá±á á¡ááŒá±ááŸá¬áá±á¬áºáá¯ááºááá¯ááºááẠáá¯á¶áá±á¬ááºáá±á¬á¡áá±ážá
áááºá¡áá»ááºá¡áááºáá»á¬ážááŒáá·áº ááŸááºáááºážáááºáá¬ážáá«áááºá á¡áá±ážááŒá®ážáá±á¬ áá»áŸáá¯á·ááŸááºá¡áá±á¬ááºá¡áá¬ážáá»á¬ážááᯠáá¯ááºá¡ááŒá±áá¶ (codebase) á¡ááœááºáž ááá¯ááºáá² áááºáááºážáá»ááºááá¯ááºáᬠááŒááºáááºáááºááŸááºááŸá¯ááœááºáᬠááááºážáááºážáá¬ážáá«áááºá
ááá·áºáá¶á០áá»áœááºá¯ááºááá¯á· ááá¯á¡ááºáá±á¬á¡áá¬áá»á¬áž
á¡áá±ážá¡ááŒá®ážáá¯á¶ážááŒá
áºáá±á¬ áá¯á¶ážá
áœá²áá°á¡ááœá±á·á¡ááŒá¯á¶áááºážááŒá±á¬ááºážáá
áºáá¯áááºážá ááá·áºááœáẠááŸáááŒá®ážáá¬ážááŒá
áºáá±á¬ áá±á¬á·ááºá¡ááºáá»á¬áž ááá¯á·ááá¯áẠáá®ááá¯ááºážáááºááœáŸááºážáá»ááºáá»á¬ážá¡ááŒááºá áá¯ááºááá¯ááŸá±á¬ááºáá¬áá±áᬠ(repository) ááŸáá·áº áááºá¡áá¯á¶ážááŒá¯ááẠáááºááœááºáá¬ážáá±á¬ áááºáá¶áá±á¬ááºááœááºáá±ážááá·áº áááºáááºážáá»áẠ(hosting environment) ááá¯á· áááºáá±á¬ááºááœáá·áºááá¯á·ááᯠáá»áœááºá¯ááºááá¯á· áá±á¬ááºážááá¯áá«áááºá áááºááŸááá®ááá¯ááºážáá»á¬áž áááŸááá«á áááºáá¯ááºáááºááá¯ááºááŒááá¯ááºáá±á¬ á¡áá¬áá
áºáá¯ááŸáá
áºááá·áº áááºáááºááœááºážáá¶ááá¯ááºá
á±ááẠááááááºá¡áááºážáááºá¡ááœááºáž á¡ááŒááºážáá»ááºážáá¯á¶á
á¶áá
áºáá¯ááᯠáá»áœááºá¯ááºááá¯á· áááºááŒáá«áááºá
ááœáŸá²ááŒá±á¬ááºážáá±ážá¡ááºáá»áááºááœáẠááẠáááŸáááá·áºá¡áá¬áá»á¬áž
ááŒá®ážá
á®ážááœá¬ážáá±á¬ áá¯ááºá¡ááŒá±áá¶ (codebase)á áá±ážáá¬ážáá¬ážááá·áºá¡ááá¯ááºáž á¡áá¯ááºáá¯ááºáá±á¬ README ááŸáá·áº ááŒáá·áºáá»ááºááŸá¯á¡ááá·áºáá»á¬ážá áá°ážááŒá±á¬ááºážááŸá¯áá»á¬áž (migrations) ááŸáá·áº áááááŒá¯ááẠááá¯á¡ááºááá·áº á¡áá»ááºáá»á¬ážááᯠááœáŸááºážááŒá¯á¶áá¬ážáá±á¬ ááŸááºáááºážáááºáá¬ážááá·áº á¡áá±ážá
áááºááŸááºážáááºážáá»ááºááá¯á· ááŒá
áºáá«áááºá
áá¯ááºáá±á¬ááºááŸá¯á¡ááŸáááºááŸáá·áº á¡áááá±ážáá»ááºáá»á¬áž
ááááá¯á¶áž áááºááœá±á·áá¯ááºáá±á¬ááºááá¯ááºáá±á¬ á¡ááá¯ááºážááẠááááááºááá¹ááááºá¡ááœááºáž á
ááºážáááºááŸá¯ URL ááá¯á· áá±á¬ááºááŸááááºááŒá
áºáááºá ááá¯á·áá±á¬ááºááœáẠá¡áá¯á¶ážáááºá á¡áá»ááºážáá»á¯ááºáá
áºáá¯áááºáž áá±ážááá¯á·ááá·áºá¡á
á¬áž á¡ááá·áºáááºáá»á¬ážááŒáá·áº áááºáááºáá±ážááá¯á·áááºááŒá
áºááŒá®áž á¡áááºá¡áá¬áá»á¬áž ááŒá±á¬ááºážáá²ááœá¬ážáááºááᯠá
á¬ááŒáá·áº á¡áááá±ážááœá¬ážáááºááŒá
áºáá«áááºá ááá¯á¡ááºáá»ááºáá
áºáá¯ááẠáááá·áºáá¯ááºá¡ááŒá±áá¶ááŸáá·áº ááœá±á·áá¯á¶áá»áááºááœáẠáá¯ááºáá»á
ááááºáá»á¬ážááŒá±á¬ááºáž ááœá±á·ááŸáááá«á ááá¯ááá¯áááºáá¬áá±á¬ áá»ááºážáááºáá¯á¶ááᯠááœá±ážáá»ááºááá¯ááºá
á±ááẠááá·áºá¡á¬áž áá»ááºáá»ááºáž á¡áááá±ážáá«áááºá