Information security
RISK REPORTING SYSTEM IN IT ORGANIZATIONS
CPT PAPER
Name: Vinod Kumar Donthagani
Institution: University Of The Cumberlands
Fall - 2015
INDEX
Title Page No:
1. Company 3
6. Learnings during Internship 8
7. Applying coursework to Internship 8
8. Challenges faced during Internship 8
9. Activities provided by company 9
10. Conclusion 10
11. References 11
1. COMPANY
Agnosco Technolgies, a diverse communications and technology company providing top-class business consulting, information technology and communication services. We are powered by a pool of talented IT and consulting professionals across SAP enterprise solutions, supply chain management, financials and controlling, client relationship management, business analytics, enterprise reporting , HR and human capital management, enterprise security and administration and web development amongst other capabilities.
2. JOB DESCRIPTION
I am part of team that works on application named “Risk Reporting System” for a leading banking domain client. My role in the team was to analyze the new change requests and enhancements of current application requested by client and complete the tasks accordingly. I need to update the changes and report to my manager about the status and take care that changes has met the client’s requirements.
My secondary goal was to test the application. As a part of testing process, I have to do primary tests for validations of the User Interface pages, perform unit testing on individual class files using Junit test cases, perform manual testing and write individual test cases for manual testing. I need to make sure that test cases need to be passed and application is 100% as per the expectations with the clients. If any bugs reported needs to be taken to the notice of development team and correct them with in the deadlines and repeat the testing process. I need to make sure to follow this process until the application module is perfect.
My responsibilities in brief are:
1. Setup the computer with required soft wares needed for the project
2. Raise various access requests for shared drives, servers etc. and follow up with respective department employees to grant them.
3. Organize and analyze the requirements collected from clients and document them appropriately
4. Develop the requirements in Java and spring framework as per the clients expectations
5. Adding new features and correcting existing features as per the client’s requirements.
6. Writing sql queries for backend operations to retrieve data from database
7. Maintain database backup for every end of the day for safe recovery purpose
8. Have to provide all the change requests documents to the supervisor on weekly basis and get them reviewed.
9. Write test cases for the application modules after development of each module
10. Perform manual testing for validations of UI pages
11. Perform unit testing of individual java classes using Junit test modules in eclipse plugin.
12. Attend meetings and technical discussions for review of clients and requirement gathering phases.
3. PROJECT DESCRIPTION
The project which I worked is named “Credit Risk Reporting System” a application used by a leading banking client that outsourced to AgnosCo Technologies., This reporting system is a software application that is used by backend operations of a bank for comparing and validating the customers assets and approve loans to them. To compare the percentage of APR that can be given to them in order to avoid the risk to the bank.
CRR generally has two types of users based on their levels of roles in the bank. One role has access only to certain types of pages where the actions are read only access that are used for data retrieval purpose. These users are naïve or low level users and cannot perform and update or modify operations. The other type of users are high level users where users can update the customers data, delete outdated data or make corrections for the existing customers records.
The various functionalities of the system are:
1. Provide two levels of user logins to restrict data access to all users.
2. Users can generate credit report of the customers based on monthly, yearly basis.
3. Users can compare the credit report status for different months.
4. Update the customer’s information for the new records included.
5. Add new customer’s data every end of the month that serves as new records for next coming month.
6. Download functionality of each and every report. Users can download the data table that they are viewing on the system into different forms of files like excel, CSV etc and can be stored in their system.
7. Users can feed the downloaded data from one application system to another application system that are used for various other purposes of the banking operation.
8. Similarly users can load the data that comes from external file system.
9. Backend support team run batch jobs for loading new data from external file system and updating the records.
10. Users can retrieve the reports in generics search criteria or based on specific search criteria.
11. Users can filter the retrieved tables on column basis. They can do exclusive filter by typing the required field at the top of the column.
12. When a new customer is added a unique id is generated for each and every customer that is used for various other operations.
13. The users can drilldown further more into customer’s details by clicking on the customer’s name or unique id. It opens another customer’s details page which contains all the customers’ information and his history records and transactions that are done with the bank.
14. Call customers functionality where users can call the customers directly from the phone that is linked to the system for enquiry purpose. When users click on customer’s id to generate their detail, there is a contact customer tab where all the contact details are available. Users can call the customers by clicking on call customer button.
Various business modules in the project are FACILITIES MODULE:
Facility refers to the credit lines such as over drafts, debts, loans, import and export lines,
etc. that are given to the customer by bank. Each facility has the data related to the facility limit, utilized amount, available amount and hold amount of each facility. Here users can see the facility related data of each customer that are used for analyzing the customers’ background data and approve loans. This modules generates the reports related to facilities and users get access to the data.
OBLIGOR MODULE:
Obligor refers to the customers debts, loans, payments, borrowing or issuing bonds from another party. Each customer data in obligor module is linked with external sources data and it get compared with them. This module generates the reports that are gathered from external data and compares with the existing system data to release funds to the customers.
RELATIONSHIP MODULE:
Relationship module refers to the customers relationship history with the bank i.e., timely payments of the debts, bills, loans etc. This module generates the graph of customer’s percentage and indicates good or bad customer in terms of payments. It varies the customers based on color. Red for bad customer, Green for good customer and yellow for average customers that needs extra verifications.
EXCEPTION MODULE:
Exception module refers to the customers with exceptional cases where their relationships are sent to external verifications and if they are under accepted criteria their data is sent to exception module. This module gets data from Relationship module and it links with based on customer unique identification number.
4. JOB TASKS IN DETAIL
As a programmer analyst intern in AgnosCo Technologies., my initial days of internship started with Knowledge Transfer sessions which lasted for one week. Various sessions include:
· Project business flow sessions
· Technology grooming sessions
· Various teams interaction for collaborative tasks with them
· Business etiquette sessions
· Interaction with clients and other external stake holders
After one week of sessions they had a screening test which assess my capability of completing tasks in the project. I have to pass a tollgate interview with senior associates in the project.
Then I was assigned a workstation and I need to install the required soft wares in the system and do initial project setup. Need to order soft wares and tools from internal market place and coordinate with technical support engineer staff and make work done.
In AgnosCo Technologies., they use a JIRA software tool which is a ticketing system that tracks the tasks of team. It is used by managers to plan and track the activities assigned to various team members. They can assign priorities to the tickets. I was initially assigned a low priority tasks and with the help of other team members I completed those tasks.
At the end of each and every week, we have a one to one meeting with our supervisor where he asses the tasks done by me in that week and they do a sanity check of the code I have written. We usually have a two weeks of sprint cycle where first week is for development and second week is for testing and Quality Assurance team check. Any failed test cases are corrected in second week and deploy for the release at end of the second week.
I have to participate in the team meetings with clients and gather requirements. I have to send Minutes of Meetings at the end of each and every meeting to all the stake holders which includes business users and technical team. I have to document all the requirements and prepare a Software Requirement Specification document and circulate the same with all the team members.
I have to do manual testing of the User Interface of application for validations, write test cases for the same. Any bugs found need to be reported to respective team members in the
development team and make sure that they are fixed before dead line and deployed in the UAT server for User Acceptance Test done by business users of client.
5. TOOLS AND TECHNOLOGIES:
CRR (Credit Risk Reporting) application is built on Java J2EE platform using Spring MVC architecture. I have used JDK 1.6 and higher version which is compatible for the application. The other tools I used are Eclipse IDE, SVN repository plugin, Junit plugin, SQL Developer tool.
Eclipse IDE:
Eclipse is an Integrated Development Environment tool that is used for java development. I have to use Eclipse Kepler version for the project which supports the necessary plugins required for application development. I need to setup with environment variables and JDK path to integrate with the existing java version in their system. It has a workspace where I need to import my code from repository tool and start development in it.
SVN repository:
SVN is a code repository tool that maintains the versioning system of the code and backup purpose. All the existing versions are present in it. I need to check out the latest version and need to work on it.
Once my changes are done, I have to check in the code back to the repository that are used by other team members for future changes and enhancements.
Junit:
Junit is plugin integrated with the eclipse ide. For each and every java class I have written, I need to write a test file for it. Using Junit I have to test the file need to check in to the SVN only if the tests are passed successfully.
SQL Developer:
SQL Developer is tool used for writing sql queries for oracle backend. I need to setup tool with the server settings and save them. Sql queries are used to retrieve data from Oracle server which are used to display data in the application. It has the facility to debug the queries easily and run dynamically to check the results at one go.
JIRA tool:
JIRA tool is used for planning and tracking of the tasks assigned. When I have joined in team an individual jira account is created for me and at the start of every day I have to check it for
the new tasks assigned to me and current ongoing of pending tasks. It has the facility to prioritize the tasks and also to record the percentage of the current tasks progress. Manager uses it for future planning of the project tasks.
Apache Tomcat server:
Apache Tomcat is an open-source web server designed by the Apache Software Foundation. Tomcat implements several Java EE specifications including Java Servlet, Java Server
Pages (JSP, and provides a "pure Java" HTTP web server environment for Java code to run in.
It is used in the project for local deployment and testing of the application before it is delivered to the actual server.
6. LEARNINGS DURING INTERNSHIP
· First and foremost thing I have learnt is how to work in a team. Being a good team player is very important for IT professional.
· Time management plays a key role in the life of a software employee. Effective organizing and prioritizing of the tasks are very important to meet the deadlines.
· Learned software development life cycle phases in practical approach.
· Learned different coding stands that comprises the modularity, scalability and reusability of the code.
· Learned how to implement MVC architecture and spring framework. MVC architecture maintains modularity of the code that separates the business logic from user interface and backend operations.
· Learned how to write test cases for testing the application
· Improved skills in core java and advanced java topics, OOPS concepts and generics.
· Learned implementation of google juice dependency injection concepts.
· Learned the importance of understanding the business. It is more important than technical knowledge.
· Learned code versioning control system using SVN.
· Learned sql query optimization using query tuning technique that plays a key role in the process of data retrieving from the database.
7. APPLYING COURSE WORK TO INTERNSHIP
1. System Design and Analysis course that I have done during my first and second semester helped me how to gather requirements from clients and convert them into business logic. How to organize team meetings and how to follow software development life cycle. How to do estimate of time for the tasks and how to prioritize them based on client requirements.
2. Databases course helped me how to write SQL queries, how to do query optimization and how to reduce the time required to retrieve the data. It helped me in understanding the ER diagram which is the primary step in understanding the business logic.
3. Projects done during Databases course and System Design and analysis course helped me in understanding various terminologies and procedures followed in real time project.
4. Principles of Operating system course has thought me how to implement multi- threading concepts at core business logics.
8. CHALLENGES FACED DURING INTERNSHIP
It would have better if I have done more learning on the advanced java concepts like spring framework and MVC architecture. Thought the concepts didn’t covered in my course curriculum I have learned them with the help of resources available over internet.
It’s been quite challenging to incorporate with the work environment and to match the pace of working style of other team members as I was new to the field.
During development phase I have not followed the coding standards, which later I realized how important they are and followed from then.
9. ACTIVITIES PROVIDED BY THE COMPANY
· Company has provided all the required hardware and software equipment and provided a peaceful work environment for intern to work at his best comfort.
· Senior team members has given me well training and knowledge sessions to incorporate me well in the company methods and methodologies.
· HR has provided me well relationship with other employees and team members by organizing team building activities on every Friday.
· Manager has provided me work from home facilities for the interns when they had their midterm examinations.
10.CONCLUSION
I would like to thank my advisor Dr. Jerry Jackson on this occasion for allowing me to take this internship opportunity. I would like to express my gratitude to all EMSIS Faculty Staff at UC others who helped me directly or indirectly in achieving my goal and responsibilities during this CPT term and my future career.
11.REFERENCES
https://en.wikipedia.org/wiki/Apache_Tomcat
http://www.agnoscotech.com/why-agnosco.html
https://en.wikipedia.org/wiki/Eclipse_(software)