User Access Management System
User Access Management System
1. Introduction
1.1 Purpose
The purpose of this document is to outline the requirements for a basic User Access
Management system. This system allows users to sign up, request access to software
applications, and enables managers to approve or reject these requests. The document aims to
provide a clear understanding of the system's functionalities, user roles, and how they interact
within the system.
1.2 Scope
Technologies to be used:
● Java Servlets
● JavaServer Pages (JSP)
● PostgreSQL Database
2. Overall Description
2.1 Product Perspective
The User Access Management System is a web-based application designed to streamline the
process of managing user access to various software applications within an organization. It is
an internal tool meant to enhance security and efficiency.
1. Employee
○ Can sign up and create an account.
○ Can log in to the system.
○ Can request access to software applications.
○ Cannot approve or reject access requests.
○ Cannot create new software applications.
2. Manager
○ Can log in to the system.
○ Can view pending access requests.
○ Can approve or reject access requests.
○ Cannot request access to software applications.
○ Cannot create new software applications.
3. Admin
○ Can log in to the system.
○ Has all the privileges of an Employee and Manager.
○ Can create new software applications.
○ Can manage system settings.
3. Specific Requirements
3.1 Sign-Up System (SignUpServlet)
Description
Allows new users to register for the system by creating an account with a default role of
"Employee."
Functional Requirements
Description
Functional Requirements
Description
Admins can add new software applications to the system.
Functional Requirements
Description
Functional Requirements
Description
Functional Requirements
4. Data Requirements
4.1 Database Design (PostgreSQL)
Tables to Create
1. users
○ Columns:
■ id (Primary Key, Auto-Increment)
■ username (Text, Unique)
■ password (Text)
■ role (Text: Employee, Manager, Admin)
2. software
○ Columns:
■ id (Primary Key, Auto-Increment)
■ name (Text)
■ description (Text)
■ access_levels (Text: Read, Write, Admin)
3. requests
○ Columns:
■ id (Primary Key, Auto-Increment)
■ user_id (Foreign Key referencing users)
■ software_id (Foreign Key referencing software)
■ access_type (Text: Read, Write, Admin)
■ reason (Text)
■ status (Text: Pending, Approved, Rejected)
5. Deliverables
● Source Code:
○ Java Servlets:
■ SignUpServlet.java
■ LoginServlet.java
■ SoftwareServlet.java
■ RequestServlet.java
■ ApprovalServlet.java
○ JSP Pages:
■ signup.jsp
■ login.jsp
■ createSoftware.jsp
■ requestAccess.jsp
■ pendingRequests.jsp
● Database Scripts:
○ PostgreSQL script to create users, software, and requests tables.
● Documentation:
○ README file with setup and run instructions.
6. Evaluation Criteria
● Basic Functionality: The system should allow users to sign up, log in, create software
(Admin), and request access (Employee).
● Code Structure: Servlets, JSP files, and database interactions should be
well-organized.
● Database Interaction: Requests and approvals should be correctly handled in
PostgreSQL.
● Completeness: All required features should be working as described.
7. Roles Summary
The system includes three distinct user roles:
1. Employee
○ Primary user who requests access to software.
○ Default role upon sign-up.
2. Manager
○ Oversees access requests and makes approval decisions.
○ Does not have the ability to create software applications.
3. Admin
○ Manages the creation of software applications.
○ Has full access, including all Employee and Manager functionalities.
Understanding these roles is crucial, as they define the permissions and access levels within
the system. Each role has specific capabilities that align with their responsibilities in the
organization's access management process.