Tushar Mahapatra - Portfolio for recent Projects

912 views

Published on

Tushar Mahapatra - portfolio for recent projects

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
912
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
19
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Tushar Mahapatra - Portfolio for recent Projects

  1. 1. Career Portfolio Name: Tushar Mahapatra Email: tushar_mahapatra@yahoo.com Phone: 703-222-9621 As of: May 2010
  2. 2. 1.Contents 1. Contents....................................................................................................................................2 2. Introduction...............................................................................................................................3 3. 09/2009 – present: Weather Data ETL.....................................................................................4 3.1 Analysis.................................................................................................................................4 3.2 Design...................................................................................................................................5 3.3 Open-source ETL.................................................................................................................5 4. 09/2009 – 03/2010: SharePoint Training...................................................................................7 4.1 SharePoint Student Project.................................................................................................7 4.2 SharePoint Team Project....................................................................................................8 5. 2008 – 2009: Modeling with XSD, AIXM5, GML, UML............................................................13 6. 2004: Job Queue Framework and Data Extractors.............................................................17 6.1 Design.................................................................................................................................17 6.2 Implementation.................................................................................................................19 Page 2 of 22
  3. 3. 2.Introduction This portfolio describes aspects of select projects I have worked on recently. The projects covered relate to the period starting from 2004 to the present (mid 2010). Except for the SharePoint training projects, which were for training by SetFocus, all the other projects were executed as a consultant with the Federal Aviation Administration. Page 3 of 22
  4. 4. 3.09/2009 – present: Weather Data ETL 3.1 Analysis Since September 2009, I have been working on the development of a solution for capturing weather data and saving them to a database. The long-term requirement is for support for a variety of weather data formats. These formats consist of complex and archaic codes. Until now, I have been working with the METAR (meteorological report) and TAF (terminal aerodrome forecast) formats. They are similar to some extent. Available documentation describing the formats is not adequately complete. Many variations of these formats exist. I analyzed the specific file formats I was provided with and described the syntax of these formats in a document using the railroad diagram construct. The following picture shows a part of the document. The texts with grey shading are hyperlinks, which make it easier to drill down deeper. Page 4 of 22
  5. 5. 3.2 Design Based on my findings in the analysis phase, I designed the class diagram shown below to help me in the implementation of the parsing code. Implementation was in Java using the Eclipse development tool. I used a plug-in which facilitated model-driven architecture. Whenever I modified the UML class diagram, appropriate Java code was generated or modified. Vice versa, when I changed the Java code, the model was automatically updated. 3.3 Open-source ETL To avail the advantages of open-source code, I researched the open-source ETL tools available. My study inclined me towards the Pentaho Data Integration (PDI) product (formerly called Kettle, and a part of the Pentaho BI Project suite of business intelligence tools). Integration of my parsing code with PDI was initially challenging and awkward. But a new release of PDI promises to make integration of Java classes with PDI very simple and clean. The following pictures illustrate parts of my solution using PDI to save parsed data to the database. The first picture shows the top-level ‘job’. In PDI, code gets executed in ‘jobs’ and ‘transformations’. A job can invoke other jobs or transformations. The job is shown in a job-editing PDI tool called ‘Spoon’. As can be seen, job and transformation setup is done diagrammatically in PDI, and hence is self-documenting. Page 5 of 22
  6. 6. Page 6 of 22
  7. 7. 4.09/2009 – 03/2010: SharePoint Training Between September 2009 and March 2010, I was enrolled in the SharePoint Training track of SetFocus’ Master’s Program. This track is an intensive SharePoint training experience designed to prepare students for development opportunities with Microsoft’s SharePoint 2007 product. As part of the training, students were expected to complete two projects simulating real- world projects. The first project was a student project which each student completed alone. The second project was a team project where all students collaborated in the completion of the project. 4.1 SharePoint Student Project The student project was for a fictitious towing company called Acme. We had to design and establish a SharePoint Solution Management Portal to help manage all of the SharePoint solutions created for the company. This portal in the company intranet was required to be created for the company’s SharePoint developers to organize and manage their solution projects. The following picture is a screenshot of the portal I developed. The top section titled ‘Create Solution Sites’ is an instantiation of a ‘CreateSolutionSiteWebPart’ web part I developed. It accepts site creation data from the user and uses it to create a web site. On the top of the web page, there is a collection of tabs of which some have names of the form ‘Test Site ##’. These are sites created by this web part. Below this web part in the section titled ‘Solution Management’ Page 7 of 22
  8. 8. is an instantiation of another web part I created named ‘SolutionManagementWebPart’. This web part used SharePoint’s SPGridView and SPDataSource controls to display a grid- view of all solution items in the ‘Solution List’ SharePoint list. After this web part is a SharePoint list created from a ‘Change Management List Definition’ I developed. Next is an instance of the Content Query Web Part I developed to find and display all Solution items in the site collection. 4.2 SharePoint Team Project The team project was also for a fictitious construction company called Acme. We had to design and establish a SharePoint application to support the company’s towing providers. We were expected to perform the following: • Create a SharePoint Application with internal as well as extranet visibility • Develop an InfoPath document library • Develop custom workflows • Implement Content Management I developed the following InfoPath form which was meant for the user to submit purchase order data to a form library. Page 8 of 22
  9. 9. Below is another InfoPath form I developed similarly for the invoice form library. Page 9 of 22
  10. 10. I developed an ‘Invoice’ ECB menu item for the purchase order list. The menu item is shown open below. Selecting the ‘Invoice’ option led to the display of an ASP.NET application page (shown next) where the user could review purchase order data retrieved from the purchase orders list, enter invoice data, and submit it to the invoice form library. Page 10 of 22
  11. 11. Page 11 of 22
  12. 12. The invoice list below shows invoice list items created by the process described above. Page 12 of 22
  13. 13. 5.2008 – 2009: Modeling with XSD, AIXM5, GML, UML The TFR Automation team in the FAA is responsible for managing the enhancement and support of the TFR Automation system. This system facilitates the tracking of TFR’s (Temporary Flight Restrictions). The system’s web interface is very heavily used and is consulted by pilots prior to undertaking flying missions. As a member of this team, I implemented compliance with the AIXM5 standard for data interchange. AIXM is an XML standard for aeronautical information. It is an extension of another XML standard called GML which supports the exchange of geographical information. For the implementation, I had to develop extensions to the AIXM5 standard. To do this, I had to first understand the requirements of the TFR Automation system in detail. Next, the requirements had to be modeled using UML using AIXM5 and GML constructs. The UML model was then converted by scripts into XML schemas (XSD). These schemas were then used to develop serialization/de-serialization code to read and write XML documents complying with the schemas. This code was then invoked by the TFR Automation code for reading and writing AIXM5 compliant documents. The screenshot below shows the UML model developed in Rational Rose for the project. Page 13 of 22
  14. 14. This UML model was converted by scripts to the following schema shown in pictorial format in the XMLSpy tool. Page 14 of 22
  15. 15. The text for this XML schema is shown below. An XML document instance of this schema is shown below with the specification of the location of the schema highlighted in yellow. Page 15 of 22
  16. 16. A screenshot showing web pages at the TFR web site is shown below. The red circle encircles a button labeled ‘AIXM5’ which links to the XML document shown earlier containing the TFR information. Page 16 of 22
  17. 17. 6.2004: Job Queue Framework and Data Extractors A common requirement in the Airspace Information Management (AIM) laboratory of the FAA was the extraction of data from various data stores. Typically, these extractions would take significant amounts of time to complete and it was not convenient or reasonable to expect the user to wait for their completion after they were initiated. In response, I designed and implemented a Job Queue framework which was used as the basis for various data extraction systems in the lab. The framework was developed using .NET 1.1, C#, VB.NET, Oracle ODP.NET and ASP.NET. I also developed a couple of data extractors (‘Offload Extractor’ for traffic data, ‘Obstacles Extractor’ for obstacles data). Other data extractors were developed using this framework by other developers. 6.1 Design Some diagrams from the design document which I authored are shown below. The first diagram is an ‘Architectural Overview’ diagram. Offload Offload Extractor Web Application Offload Extractor Windows Service JobQueue JobQueue Offload Component Windows Web Service Application SDAT Traffic ArcView Intergraph JobQueue Document Document Document JobQueue Component Component Component Component Offload Database JobQueue Database The ‘Deployment Diagram’ is shown below. Page 17 of 22
  18. 18. Offload Extractor Web Application Server Offload «library» Database OffloadExtractorWebApplication «call» Offload Extractor Server «executable» Offload OffloadExtractorWindowsService «call» «library» JobQueue Offload Web «library» JobQueue JobQueue Web Application Server JobQueue Database «library» JobQueueWebApplication JobQueue Server «executable» JobQueueWindowsService «library» JobQueue «library» JobQueue The object model for the Offload Extractor system is shown below. Page 18 of 22
  19. 19. «implementation class» «implementation class» «implementation class» «implementation class» «implementation class» «implementation class» DefaultPage SimpleQueryPage AdvancedQueryPage WaitPage JobQueuePage JobDetailsPage +NavigateToSimpleQuery() +Submit() +Submit() +DeleteSelected() +NavigateToAdvancedQuery() +NavigateToJobDetails() +NavigateToJobQueue() 1 1-Accesses 1 -Uses -Uses 1 -Uses 1 -Uses 1 1-Uses -Uses 1 -Uses 1 -Uses «implementation class» «implementation class» OffloadExtractorService JobQueueService -Uses 1 1 1 -Uses -Uses -Uses 1 «implementation class» OffloadExtractor 1 -Uses * -Is accessed by +Extract() *-Is used by -Isby by * -Is accessed by * *-Is used used -Accesses #OpenExtract() 1 #SaveFlight() «implementation class» #CloseExtract() -Is used by «implementation class» OffloadDB «inherits» JobQueueDB «inherits» +FirstMessageDateTime : Date «inherits» * -Is used by * +LastMessageDateTime : Date * -Is used by * -Is used by +AddJob() * -Is* used by* used by used by -Is -Is * -Is used by +GetFlights(in strQuery : String) : Object +GetJob() +ModifyJob() «implementation class» -Is used by «implementation class» -Is used by «implementation class» +DeleteJob() OffloadToSDATTrafficExtractor OffloadToArcViewExtractor OffloadToIntergraphExtractor * * 1 +OpenExtract() +OpenExtract() +OpenExtract() +SaveFlight() +SaveFlight() +SaveFlight() -Uses +CloseExtract() +CloseExtract() +CloseExtract() 1 -Generates 1 -Generates 1 -Generates * -Is used by * -Is generated by * -Is generated by * -Is generated by «implementation class» «implementation class» «implementation class» «implementation class» SDATTrafficMerger SDATTrafficDocument ArcViewDocument IntergraphDocument +MergeFlights() +Open() +Open() +Open() +Close() +Close() +Close() +Save() +Save() +Save() +AddMetadata() +AddMetadata() +AddMetadata() +AddFlight() +AddFlight() +AddFlight() 6.2 Implementation Some screenshots of actual web pages currently in production for the Offload Extractor system are shown below. The first screenshot is that of the main menu page of the Offload Extractor. Page 19 of 22
  20. 20. The screenshot below is for the web page which shows the Offload Extractor job queue. Page 20 of 22
  21. 21. The web page showing details for an Offload Extractor job is shown below. Page 21 of 22
  22. 22. Page 22 of 22

×