ΠΡΡ Π³Π°Π»ΡΠ΅ΡΡΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°ΠΌΠΈ, Π²ΡΠΏΠ»Π°ΡΠ°ΠΌΠΈ ΠΈ Π½Π°Π»ΠΎΠ³Π°ΠΌΠΈ.
- π ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ
- π οΈ Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ
- βοΈ Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
- ποΈ ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
- π ΠΠ°ΠΏΡΡΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
- π₯ ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
- πΈ Π‘ΠΊΡΠΈΠ½ΡΠΎΡΡ
- π ΠΠΈΡΠ΅Π½Π·ΠΈΡ
- β ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ°
- π ΠΠ²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ β Π²Ρ ΠΎΠ΄ ΠΏΠΎ Π»ΠΎΠ³ΠΈΠ½Ρ/ΠΏΠ°ΡΠΎΠ»Ρ Ρ Ρ ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ SHA256
- π₯ Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°ΠΌΠΈ β Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅, ΠΏΡΠΎΡΠΌΠΎΡΡ, ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
- π° ΠΡΠΏΠ»Π°ΡΡ β Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π·Π°ΡΠΏΠ»Π°ΡΡ, ΠΏΡΠ΅ΠΌΠΈΠΉ, ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΡΠΌΠΌ
- π Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π°Π»ΠΎΠ³Π°ΠΌΠΈ β Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π°Π»ΠΎΠ³ΠΎΠ²
- π§Ύ Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π²ΡΠΏΠ»Π°ΡΠ°ΠΌΠΈ β ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² Π²ΡΠΏΠ»Π°Ρ Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΎΠΉ Π½Π°Π»ΠΎΠ³ΠΎΠ²
- πͺ ΠΠΎΠ»ΠΆΠ½ΠΎΡΡΠΈ β ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΠΈ ΡΡΠ°ΡΡΡΠ°ΠΌΠΈ (Π°ΠΊΡΠΈΠ²Π½Π°/Π½Π΅Π°ΠΊΡΠΈΠ²Π½Π°)
- π οΈ Π Π΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΠ β ΠΏΠΎΠ»Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ°Π±Π»ΠΈΡΠ°ΠΌ (ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π°Π΄ΠΌΠΈΠ½Π°)
- π ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΎΡΡΡΡΠΎΠ² β Π²ΡΠ±ΠΎΡ ΡΠΈΠΏΠ°, ΠΏΠ΅ΡΠΈΠΎΠ΄Π°, ΡΠΎΡΠΌΠ°ΡΠ° (.txt / .csv)
- β ΠΠ°Π»ΠΈΠ΄Π°ΡΠΈΡ Π΄Π°Π½Π½ΡΡ β ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ, Π·Π°ΡΠΈΡΠ° ΠΎΡ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°
| ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ | Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡ / Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ | ΠΠ΅ΡΡΠΈΡ |
|---|---|---|
| ΠΠ»Π°ΡΡΠΎΡΠΌΠ° | .NET | 6.0 |
| Π―Π·ΡΠΊ | C# | 12.0 |
| ΠΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ | WinForms | .NET 6.0 |
| ORM | Entity Framework Core | 6.0 |
| ΠΠ°Π·Π° Π΄Π°Π½Π½ΡΡ | PostgreSQL | 18 |
| Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ | xUnit | 2.4.1 |
| ΠΠ‘ | Windows | 10 / 11 |
git clone https://github.com/RamenOfficialGovPatsy/PayrollHelper.git
cd PayrollHelperΠ‘ΠΊΠ°ΡΠ°ΠΉΡΠ΅ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ .NET 6.0 SDK (Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Runtime).
β οΈ ΠΠ°ΠΆΠ½ΠΎ: ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ .NET SDK Π²Π΅ΡΡΠΈΠΈ 6.0. ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ SDK, ΠΏΡΠΎΠ΅ΠΊΡ Π²ΡΡ ΡΠ°Π²Π½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ±ΠΈΡΠ°ΡΡΡΡ Ρ Π²Π΅ΡΡΠΈΠ΅ΠΉ 6.0 Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ°ΠΉΠ»Ρglobal.jsonΠ² ΠΊΠΎΡΠ½Π΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ.
Π‘ΠΊΠ°ΡΠ°ΠΉΡΠ΅ ΠΈ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ PostgreSQL 18
ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ΡΡ ΠΊ PostgreSQL ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅:
CREATE USER payroll_user WITH PASSWORD '123';
CREATE DATABASE payroll_db OWNER payroll_user ENCODING 'UTF8';
GRANT ALL PRIVILEGES ON DATABASE payroll_db TO payroll_user;ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ Docs/DatabaseScripts/ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅:
| Π€Π°ΠΉΠ» | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
|---|---|
1_create_tables.sql |
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ |
2_add_foreign_keys.sql |
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π½Π΅ΡΠ½ΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ |
3_insert_all_data.sql |
ΠΠ°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ |
π‘ ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π‘ΠΊΡΠΈΠΏΡ
4_drop_all_tables.sqlΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΠ°Π±Π»ΠΈΡ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ).
psql -U payroll_user -d payroll_db- ΠΡΠΊΡΠΎΠΉΡΠ΅
PayrollHelper.slnx - Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅
PayrollHelperΠΊΠ°ΠΊ ΡΡΠ°ΡΡΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ - ΠΠ°ΠΆΠΌΠΈΡΠ΅
F5ΠΈΠ»ΠΈCtrl+F5
cd PayrollHelper
dotnet build -c Release
dotnet run --project PayrollHelper| ΠΠΎΠ³ΠΈΠ½ | ΠΠ°ΡΠΎΠ»Ρ | Π ΠΎΠ»Ρ |
|---|---|---|
admin |
admin |
ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ |
CEO |
CEO123 |
ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡ |
user |
user |
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ |
π‘ ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ°ΠΉΠ»
users.jsonΡΠΎΠ·Π΄Π°ΡΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π² ΠΏΠ°ΠΏΠΊΠ΅ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠΎΠ²ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΎΡΠΌΡ "Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ".
ΠΡΠΎΠ΅ΠΊΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ MIT. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ Π² ΡΠ°ΠΉΠ»Π΅ LICENSE.
ΠΡΠ»ΠΈ ΠΏΡΠΎΠ΅ΠΊΡ ΠΎΠΊΠ°Π·Π°Π»ΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ, ΠΏΠΎΡΡΠ°Π²ΡΡΠ΅ Π·Π²Π΅Π·Π΄Ρ β ΡΡΠΎ Π»ΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠΊΠ°Π·Π°ΡΡ Β«ΡΠΏΠ°ΡΠΈΠ±ΠΎΒ» ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΡΠΎΠ΅ΠΊΡΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ Π½ΠΎΠ²ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.








.png)
.png)
.png)






