The project I have completed is a web application that allows users to register, login, and manage their information based on their assigned roles. The application utilizes technologies such as.NET Core, ReactJs, JSON, JavaScript, and MySQL/SQL. The main objective of the project is to demonstrate expertise in full-stack development by implementing various features and functionalities.
The app includes the following features:
- User Registration: Users can create an account by providing necessary information such as username, email, password, address and contact number.
- User Login: Registered users can securely log into the application using their credentials.
- User Roles: The application supports three types of roles: Administrator, User, and Staff. Each role has different access levels and permissions.
- Admin Dashboard: The administrator has complete control over the application. They can add, edit, or delete any information provided by users.
- Staff Dashboard: The staff members have limited access. They can add or edit information provided by users but cannot delete it.
- User Dashboard: Users have limited access and can only add or modify their own information.
The app is built using the following technologies:
- Backend: .NET Core (C#), MySQL/SQL
- Frontend: ReactJs, JavaScript
- Data Interchange Format: JSON
- User Authentication and Authorization: Implementing a secure user authentication and authorization system to ensure that only authorized users can access the application and its features.
- Role-based Access Control: Designing and implementing a system to manage user roles and their corresponding permissions.
- Data Management: Creating a database schema to store user information and designing efficient data retrieval and modification methods.
- User Interface: Developing a user-friendly and intuitive interface using ReactJs and JavaScript to enhance the overall user experience.
![](https://private-user-images.githubusercontent.com/89337309/247927123-05619f4c-0302-4a3d-b7d8-9c507ceb271b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ2ODYwNjksIm5iZiI6MTcyNDY4NTc2OSwicGF0aCI6Ii84OTMzNzMwOS8yNDc5MjcxMjMtMDU2MTlmNGMtMDMwMi00YTNkLWI3ZDgtOWM1MDdjZWIyNzFiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODI2VDE1MjI0OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWYzZWEzNTcxZmY0MjNhNzMxY2YwOWZhYWE4OTM1NjNmNmE1MzZmMTBhNzFmYWM5MzExMzZlNmZiMGE2YjFmYjEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.oBZbtsciH_W8PoqQvH9SmJqYj4DEp3tCqzp_hqNikKs)
![](https://private-user-images.githubusercontent.com/89337309/247931355-90a08d85-7093-48de-b3c7-a9c2568e2a43.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ2ODYwNjksIm5iZiI6MTcyNDY4NTc2OSwicGF0aCI6Ii84OTMzNzMwOS8yNDc5MzEzNTUtOTBhMDhkODUtNzA5My00OGRlLWIzYzctYTljMjU2OGUyYTQzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODI2VDE1MjI0OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTI5OTVjYzJjMmQxMDEyNDQ2ODEyYjY4YTQ3YmYzYzIyYTY4MjExYjM0YzQxZjJiMGE0YTNiMzdmYjAxZDA4NjAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.BLXMxfuvyiypsN6w1VeQm3NJ9ShQPYht6S796gyKpf8)
The Administrator has complete control over the application and can add, edit, and delete all information provided by users.
![](https://private-user-images.githubusercontent.com/89337309/247992201-e11267cb-70a0-4858-b718-efd994a6d6a0.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ2ODYwNjksIm5iZiI6MTcyNDY4NTc2OSwicGF0aCI6Ii84OTMzNzMwOS8yNDc5OTIyMDEtZTExMjY3Y2ItNzBhMC00ODU4LWI3MTgtZWZkOTk0YTZkNmEwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODI2VDE1MjI0OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWMxMWIwZWJlNWQ3MGY3ZWI0ZWZlMDBkZTVlMGVhMmU5NmE5ZjBkYWM1YTY4OTU5ZmRkN2RlODY4OGRkMzYxNzYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.oor07GEu-hmJvHkb7oG9c7FMRvauy3SsGe39KOkHMG8)
The Staff role has limited access, allowing them to add and edit user information only.
![](https://private-user-images.githubusercontent.com/89337309/247996129-b9b6066a-bca0-4e1c-a199-c3cd9aa9befb.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ2ODYwNjksIm5iZiI6MTcyNDY4NTc2OSwicGF0aCI6Ii84OTMzNzMwOS8yNDc5OTYxMjktYjliNjA2NmEtYmNhMC00ZTFjLWExOTktYzNjZDlhYTliZWZiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODI2VDE1MjI0OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWY1M2RmOGNiYjI0ZjAxM2JjZGFlZmEwZjlmZGY0YjFlMjNlM2U3Njk3NzIxMGIwZTE2NThiMTQzOTBjYzVhNjkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.RFF3j2RqB3Wg_TV2uYi1cp0M4VMmzro3WJgESgplKqM)
Users have the most limited access and can only add or change their own information.
![](https://private-user-images.githubusercontent.com/89337309/247996590-24347ff2-1a87-4e3b-8a38-d611a812dc32.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ2ODYwNjksIm5iZiI6MTcyNDY4NTc2OSwicGF0aCI6Ii84OTMzNzMwOS8yNDc5OTY1OTAtMjQzNDdmZjItMWE4Ny00ZTNiLThhMzgtZDYxMWE4MTJkYzMyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODI2VDE1MjI0OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTE1OWY1MGU3NDJjN2I3MTFlMjhjMTM3NDhmNTU5OTM1NjQxMGI3ZDUxOGI3NDA5ZjVlYjBmMzUwZWFjNzRlNjcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.mmjHJZqlkgbIUE6H-_kXRa-96Rx2bIub-MNScNwAC_o)
![](https://private-user-images.githubusercontent.com/89337309/247997226-ad374295-c17d-4011-827e-07aa1b325cdc.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ2ODYwNjksIm5iZiI6MTcyNDY4NTc2OSwicGF0aCI6Ii84OTMzNzMwOS8yNDc5OTcyMjYtYWQzNzQyOTUtYzE3ZC00MDExLTgyN2UtMDdhYTFiMzI1Y2RjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODI2VDE1MjI0OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTBmY2NmYTA4YTllZmE0MThhYTNkN2UwYTg0YmIxNzVjYzg5OTQ1OGQwNzQ0MTVlNTVlMTk1MmQ1YjU5MTAwZmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.mvNMcqMxfsvsqchQFW7lQuEFH3m2iE14lVy5FcICWkY)
![](https://private-user-images.githubusercontent.com/89337309/247997409-4d25a436-5e00-4ef9-b3ab-30ead8ab2acb.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ2ODYwNjksIm5iZiI6MTcyNDY4NTc2OSwicGF0aCI6Ii84OTMzNzMwOS8yNDc5OTc0MDktNGQyNWE0MzYtNWUwMC00ZWY5LWIzYWItMzBlYWQ4YWIyYWNiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODI2VDE1MjI0OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWU4Y2Q4ZDIwMWE5M2U5YzkyMDEwNTUwZWM4NjU3NGI4MDJlYzViM2MzNWQ3YzNiMWY4ODE4NGQ0YzhhZTk5NTEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.NnoQFvCWJtW2SwGace7Q9HDq5sG1D5Kx9xhpLa9RS9M)
![](https://private-user-images.githubusercontent.com/89337309/247998042-675f1e1d-459b-4189-a934-9ee8894f8941.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjQ2ODYwNjksIm5iZiI6MTcyNDY4NTc2OSwicGF0aCI6Ii84OTMzNzMwOS8yNDc5OTgwNDItNjc1ZjFlMWQtNDU5Yi00MTg5LWE5MzQtOWVlODg5NGY4OTQxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA4MjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwODI2VDE1MjI0OVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWY4MzliM2VkNWE5NjQ1MWZmYmJjY2M2ODBiM2QwMTEwZjUyZmZiYTg3MzVlMjIxOGJhNzRlNzhhYTZmNDM0M2MmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.D9UGv33Ajtd6Fr0RqL02fnv4jQ0qpLuXLfzzBgsU6pg)