A simple headless blog engine written in ASP.NET Core 7.0 based on the winning entry of the Dusza Árpád National Programming Contest 2022 (Web Category). The original project was made in a team of 3 with @minigyima and @Smart123s, and was written in Laravel with a React frontend, but is closed source.
This version of it contains all of the original features with a considerable amount of internal changes and improvements (especially to the api design).
If something feels a little off about the project, it's either because it had to follow the competition exercise or because it's my first ever C# project so don't be too hard on me.
Method | Endpoint | Requires Auth (+Roles) | Requires Password Change | Description |
---|---|---|---|---|
Post | /Auth/Login | No | - | Log in with username and password |
Post | /Auth/Refresh | No | - | Log in with refresh token cookie |
Get | /Auth/User | Yes | No | Get the currently logged in user |
Get | /Auth/Roles | Yes | No | Get the roles of the currently logged in user |
Post | /Auth/ChangePassword | Yes | No (Only without) | Change the password on the first login |
Get | /Config | No | - | Get the config for the website (Title, Description, About page...) |
Patch | /Config | Yes (Webmaster) | Yes | Set the website config (files are appended) |
Get | /Approve | Yes (Webmaster, Moderator) | Yes | Index of unapproved posts |
Get | /Approve/{id} | Yes (Webmaster, Moderator) | Yes | Preview post for approval change |
Patch | /Approve/{id} | Yes (Webmaster, Moderator) | Yes | Change approval status of a post |
Get | /Files/{name} | No | - | Download the given file |
Delete | /Files/{id} | Yes | Yes | Delete the given file (will result in forbidden if editor tries to delete file on page or post that's not their own, same for config and non webmasters) |
Post | /Images | Yes | Yes | Upload an image and get back the url for it |
Get | /Pages | Yes (Webmaster, Moderator) | Yes | Index of all pages |
Post | /Pages | Yes (Webmaster, Moderator) | Yes | Create a new page (maximum nesting depth is 4) |
Get | /Pages/{id} | No | - | Get the given page with subpages, files and post previews (only visible pages) |
Patch | /Pages/{id} | Yes (Webmaster, Moderator) | Yes | Edit the given page (files are appended) |
Delete | /Pages/{id} | Yes (Webmaster, Moderator) | Yes | Delete the given page (also deletes files) |
Get | /Posts | Yes | Yes | Index of all (or in case of an editor just the own) posts |
Post | /Posts | Yes | Yes | Create a new post (unapproved for editors by default) |
Get | /Posts/{id} | No | - | View the given post (only visible and approved) |
Patch | /Posts/{id} | Yes | Yes | Edit the given post (will unapprove on content change for editors) |
Delete | /Posts/{id} | Yes | Yes | Delete the given post (will result in forbidden or not found if it's not own for editors) |
Get | /Users | Yes (Webmaster) | Yes | Index of all users |
Post | /Users | Yes (Webmaster) | Yes | Create a new user |
Get | /Users/{id} | No | - | View the given user and their visible and approved posts |
Delete | /Users/{id} | Yes (Webmaster) | Yes | Delete the given user |
Patch | /Users/{id} | Yes (Webmaster) | Yes | Edit the given user |
Patch | /Users/Self | Yes | Yes | Edit the currently logged in user |
More info about the api is available in the generated swagger documentation.
Egy egyszerű front-end nélküli blog motor, ASP.NET Core 7.0-ban írva, amely a Dusza Árpád Országos Programozói Emlékverseny 2022 (Web Kategória) nyertes megoldásán alapul. Az eredeti projekt egy 3 fős csapatban készült @minigyima - val és @Smart123s - el, és Laravel - ben íródott React front-enddel, de nem nyílt forráskódú.
Ez a változat tartalmazza az eredeti funkciókat, jelentős belső változtatásokkal és fejlesztésekkel (főleg az api struktúrájában).
Ha valami kicsit furcsának tűnik, akkor az vagy azért van, mert a verseny utasítását kellett követnie, vagy mert ez az első C# projektem, szóval légyszíves nem megkövezni.
Method | Endpoint | Szükséges Auth (+Szerepkörök) | Szükséges Jelszó Változtatás | Leírás |
---|---|---|---|---|
Post | /Auth/Login | Nem | - | Belépés felhasználónévvel és jelszóval |
Post | /Auth/Refresh | Nem | - | Belépés refresh token sütivel |
Get | /Auth/User | Igen | Nem | Jelenleg belépett felhasználó lekérése |
Get | /Auth/Roles | Igen | Nem | Jelenleg belépett felhasználó szerepköreinek lekérése |
Post | /Auth/ChangePassword | Igen | Nem (Csak anélkül) | Jelszó megváltoztatása első belépéskor |
Get | /Config | Nem | - | Weboldal konfigurációjának lekérése (Cím, Ismertető, Rólunk oldal...) |
Patch | /Config | Igen (Webmaster) | Igen | Weboldal konfigurációjának beállítása (a fájlok hozzácsatolódnak) |
Get | /Approve | Igen (Webmaster, Moderator) | Igen | Nem elfogadott cikkek lekérése |
Get | /Approve/{id} | Igen (Webmaster, Moderator) | Igen | Cikk előnézete elfogadottság megváltoztatásáhot |
Patch | /Approve/{id} | Igen (Webmaster, Moderator) | Igen | Cikk elfogadottságának megváltoztatása |
Get | /Files/{name} | Nem | - | Az adott fájl letöltése |
Delete | /Files/{id} | Igen | Igen | Az adott fájl törlése (hibát dob ha egy editor megpróbál fájlt törölni olyan oldalon vagy poszton, amely nem az övé, ugyan ez a helyzet a konfigurációval és a webmaster - ekkel) |
Post | /Images | Igen | Igen | Kép feltöltése és url szerzése hozzá |
Get | /Pages | Igen (Webmaster, Moderator) | Igen | Az összes oldal lekérése |
Post | /Pages | Igen (Webmaster, Moderator) | Igen | Új oldal létrehozása (maximum 4 szintes hierarchia) |
Get | /Pages/{id} | Nem | - | Az adott oldal lekérése aloldalakkal, fájlokkak és cikk előnézetekkel (csak látható oldalak) |
Patch | /Pages/{id} | Igen (Webmaster, Moderator) | Igen | Az adott oldal szerkesztése (a fájlok hozzácsatolódnak) |
Delete | /Pages/{id} | Igen (Webmaster, Moderator) | Igen | Az adott oldal törlése (a fájlok is törlődnek) |
Get | /Posts | Igen | Igen | Az öszzes (vagy editor esetében csak saját) cikk lekérése |
Post | /Posts | Igen | Igen | Új cikk létrehozása (nincs elfogadva editor - ok számára alapból) |
Get | /Posts/{id} | Nem | - | Az adott cikk lekérése (csak látható és elfogadott) |
Patch | /Posts/{id} | Igen | Igen | Az adott cikk szerkesztése (nem elfogadott lesz tartalom változtatásakor editor - ok esetében) |
Delete | /Posts/{id} | Igen | Igen | Az adott cikk törlése (Hibát dob nem saját cikknél editor - ok esetében) |
Get | /Users | Igen (Webmaster) | Igen | Összes felhasználó lekérése |
Post | /Users | Igen (Webmaster) | Igen | Új felhasználó létrehozása |
Get | /Users/{id} | Nem | - | Az adott felhasználó megtekintése a látható és elfogadott cikkjeivel együtt |
Delete | /Users/{id} | Igen (Webmaster) | Igen | Az adott felhasználó törlése |
Patch | /Users/{id} | Igen (Webmaster) | Igen | Az adott felhasználó szerkesztése |
Patch | /Users/Self | Igen | Igen | A jelenleg belépett felhasználó szerkesztése |
Több információ az api - ról a swagger dokumentációban található.