Photography Management System, A developing system to fullfil the requirement of BITU3923 WORKSHOP II
Project is available at https://photog123.azurewebsites.net/ (until Somewhere around February 2021)
Project Demo is available at YouTube
Database SQL Script and Full Backup are included inside the project file
Developers can access logged in users information, through custom class that have been made.
Identity()
method returns User object (similar to the ones inside data entity / database)
UserAuthentication.Identity()
Routing has been configured to allow permalinks for studio profiles.
RouteConfig.cs
routes.MapRoute(
name: "Studio Profile Page",
url: "{permalink}/{action}/{id}",
defaults: new { controller = "Studio", action = "Index", id = UrlParameter.Optional }
);
To allow only valid links, Add these custom DataValidation to desired controller
[StudioPermalinkValidate]
public ActionResult TestPage()
To only allow link to be accessed with roles, use RoleID
//Only Studio Admin can access
[StudioPermalinkValidate(RoleID = 1)]
public ActionResult TestPage()
//Studio Admin and Studio Staff can access
[StudioPermalinkValidate(RoleID = 2)]
public ActionResult TestPage()
[StudioAuthorizationRole(RoleID = 1)]
Authorizes access for pages with required authority. 1 for admin only, 2 for admin and staff
To allow detection of permalinks, unfortunately every new controller must be registered for their routing manually.
Example below is routing for AccountController.cs
RouteConfig.cs
routes.MapRoute(
name: "Account",
url: "Account/{action}/{id}",
defaults: new { controller = "Account", action = "Index", id = UrlParameter.Optional }
);
This project includes the following Library :
- Bootstrap v4.5.3
- JQuery v3.5.1
- Vue.js 3.0.2
- FilePond (CDN)
- DataTable.js (CDN)
- Axios (CDN)
Lead Dev : Adi Iman
UI/UX Design : Afiq Iskandar
Back-End Dev : Raziq Danish
Developer : Heng Kai