{"id":23870260,"url":"https://github.com/enginkaratas/weekly-reporting-angular","last_synced_at":"2026-04-09T22:50:00.184Z","repository":{"id":166507504,"uuid":"394377425","full_name":"EnginKARATAS/weekly-reporting-angular","owner":"EnginKARATAS","description":"weekly reporting app, track workers weekly activities","archived":false,"fork":false,"pushed_at":"2023-02-23T16:27:08.000Z","size":5111,"stargazers_count":1,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-22T18:49:12.283Z","etag":null,"topics":["angular","mysql","nodejs"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EnginKARATAS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-09T17:13:13.000Z","updated_at":"2022-04-29T04:32:18.000Z","dependencies_parsed_at":"2023-10-02T03:46:05.415Z","dependency_job_id":null,"html_url":"https://github.com/EnginKARATAS/weekly-reporting-angular","commit_stats":null,"previous_names":["enginkaratas/weekly-reporting-angular"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/EnginKARATAS/weekly-reporting-angular","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EnginKARATAS%2Fweekly-reporting-angular","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EnginKARATAS%2Fweekly-reporting-angular/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EnginKARATAS%2Fweekly-reporting-angular/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EnginKARATAS%2Fweekly-reporting-angular/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EnginKARATAS","download_url":"https://codeload.github.com/EnginKARATAS/weekly-reporting-angular/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EnginKARATAS%2Fweekly-reporting-angular/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284115871,"owners_count":26949957,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-12T02:00:06.336Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","mysql","nodejs"],"created_at":"2025-01-03T13:53:40.021Z","updated_at":"2025-11-12T22:03:18.714Z","avatar_url":"https://github.com/EnginKARATAS.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"#weekly-reporting-angular\nweekly reporting app, track workers weekly activities\nProject explaining in Turkish Language(English explaining coming soon):\nhttps://youtu.be/F-x9DOQEvKA\n\n\n\n#Project Introduction\n\nThe name of my project is “Katana Reporting” and it is a reporting management system in general. Users can easily enter their weekly reports into the system in the desired format, and the administrator can easily manage these mails entered by the users, send revision mails, add comments to the revision message, etc. can fulfill many functions.\nThe project is written with frontend angular, backend nodejs. The project is live on the apache server and the stability of the backend is provided by the pm2 server. The project has a responsive design. Users who visit the system via both mobile and web browsers are facilitated. Mysql is used as database and all technologies work on ubuntu server. No ORM tool is used and all queries are written in T-SQL helper language.\n\n![image](https://user-images.githubusercontent.com/43602725/148954494-1984219f-083f-4a4b-aa00-266d78710a45.png)\n\nRequirements Analysis:\nThere are weekly activity reports that all employees fill out and send on a weekly basis. This weekly activity report is a laborious task that is prepared manually in Excel. It is aimed to transfer this to an online environment and to create a system where users can easily send their weekly reports.\n\nŞekil 2 - Excellde veri düzenlemenin ne kadar karmaşık olduğunu gösteren bir görsel\n![image](https://user-images.githubusercontent.com/43602725/148954969-041f867c-b4ee-4a0d-881a-38c9cfbf807c.png)\n\nAs can be seen in Table 1, there is a title section about who belongs to the weekly report and lines where employees can enter each of their weekly work. The user is perhaps copying the lines and changing the places they need to change one by one. Continuation holds a lot of information about the status of the row, such as closed. This needs to be prevented. Because although I filled out this report from the first week, the employees fill out this report every week. For example, the fact that 100 employees do this boring job and lose time will also affect the performance of the companies. For example, I spend an average of 20 minutes on this report. If we consider this as 100 employees, a total of 33 hours per week is wasted.\nWhat technologies could be used in this project?\nFRONTEND\n• React\n• Vue\n• Angular\nBACKEND\n• .Net Core\n• Spring Boot\n• Django\n• Nodejs\nWhy Angular?\nAngular framework will be used as it is requested to make this action very easy for users.\nWhile developing, a lot of information was needed. Therefore, CRUD APP projects made with angular were examined.\nWhen the Angular structure is examined, it is seen that it makes requests to services in general and makes CRUD operations from these requests. After watching the Deborah Kurata Angular Getting Started course, she started working on the internship project.\n\nIt was decided that login processes should also be included in the project. Because users should be able to log in to the system and only deal with their own reports.\nWhy Nodejs?\nNode.js is a free and open source server-side framework. It can be used on Windows, Linux, Unix, macOS and many operating system architectures without any problems.\nWith Node.js, which uses JavaScript on the server side, you can develop web-based projects and produce web software that provides solutions to real-time needs.\nNode.js is one of the most frequently used frameworks for software developers on the Internet. It may even be the most preferred framework. It has important advantages such as providing high performance, being easily scalable, shortening the process between the visitor and the server.\nSoftware/Hardware Tools Used in the Project\nAngular:\nAngular is a modern JavaScript framework developed and supported by Google. Angular, which makes it possible to write single-page applications, provides development with the MVC design pattern.[1]\nNodeJs:\nNode.js is an open-source, server-side runtime environment for networked applications. Node.js applications are typically developed using JavaScript, a client-side scripting language. [2nd]\nMYSQL:\nMySQL is a multi-threaded, multi-user, fast and robust database management system installed on more than six million systems. While it is distributed free of charge for UNIX, OS/2 and Windows platforms, there is also a paid license option for those who want to use a commercial license. [3]\n\nExpressJs:\nExpress.js Node.js based web application server framework. Express.js is designed for developing single-page, multi-page and hybrid web applications. Express.js is also one of the components of the MEAN software bundle. [4]\nTypeScript:\nTypeScript is a free and open source programming language. TypeScript developed and supported by Microsoft; Thanks to the compiler it contains, it converts the written code to JavaScript code. TypeScript can be used in both client-side and server-side software development. [5]\nPM2:\nTranslated from English-PM2 is a transaction manager for the JavaScript runtime Node.js. In 2016, PM2 was named the 82nd most popular JavaScript project on GitHub. [6]\nUbuntu:\nUbuntu is a free and free operating system based on Linux. It is developed for computers, servers and smartphones. [7]\nApache Server\nApache is an open source and free Web server program. It is developed by the Apache Software Foundation. It can run on Unix, GNU, FreeBSD, GNU/Linux, Solaris, Novell NetWare, Mac OS X, Microsoft Windows, OS/2, TPF and eComStation operating systems. [8]\nRxJS:\nRxJS is a reactive programming library written in JavaScript where you can convert events and data sources into subscriptable objects, perform transformations on them with the help of operators, and consume the result through observers. [9]\n\nBootstrap:\nTwitter Bootstrap is open source, a suite of tools and frontend framework that can be used to develop web pages or applications. Bootstrap contains HTML and CSS based design templates that can be used in web pages or applications. [10]\nNPM:\nNpm is a package management system developed for the javascript scripting language and accepted as a standard by Node.js. npm is run from the command line and provides dependency management for applications. [11]\nWhat is Visual Studio Code?\nVisual Studio Code is a source code editor developed by Microsoft for Windows, Linux and MacOS. It includes support for debugging, embedded Git checking, syntax highlighting, smart code completion, snippets, and code refactoring. [12]\n\nProject name: KATANA REPORTING\nPurpose of the project: Katana Reporting is a platform where employees can submit their reports and managers can manage these reports.\nProject need:\nBefore the Katana Reporting project, users were opening a new excel sheet to submit their weekly reports to the manager. On this page, they were filling in the fields one by one, following the template set by the administrators. These created excel files were delivered to the managers via email. This process is very costly for users. It is aimed that users can access the Katana Reporting application from their web browsers with their login information and transmit their reports quickly to the manager.\n\n5. Requirements to be included in the Project:\nIt is to deliver the weekly report entered by the user to the administrator. For this reason, users should be able to edit and send their own weekly reports. In this time period, it should save as clean data as possible to the database, so form validation processes should be provided in the best way.\n\n![image](https://user-images.githubusercontent.com/43602725/148956118-fd043d5c-1954-4e11-8cd8-11c2d809c51a.png)\n\nfigure 5.1 user reports\n\n![image](https://user-images.githubusercontent.com/43602725/148956200-7e64aef5-7f0d-4fdf-a053-10e3ad0363b2.png)\n\nfigure 5.2 user report details\n\n![image](https://user-images.githubusercontent.com/43602725/148956245-7688d883-51a2-4326-ad4d-730b586516d5.png)\n\nfigure 5.3 user can send reports\n\n![image](https://user-images.githubusercontent.com/43602725/148956281-54788d32-1421-4089-a6df-0cc271eefdb0.png)\n\nfigure 5.4 user have to credentials\n\n![image](https://user-images.githubusercontent.com/43602725/148956313-ffd390cf-5454-4a75-aa07-5676fa09da37.png)\n\nThe administrator, on the other hand, should be able to request, view and edit these submitted reports again.\n\nReports can have multiple rows and the fields of each row are as seen in table 3.\nTable 3\n• Sequence Number (expected to increase as the number of lines increases)\n• Severity (Scored from 1 to 5)\n•\tStarting date\n• End Date\n• Works / Actions\n• Requestor\n• Scheduled Completion Date\n• Timeout/Timeout Yes-No\n\n• Status / Status\n• Comments/Suggestions\n5.1 User Actions:\nAfter logging into the system, the user should be able to see their weekly reports. When he wants to go to the details of the report he wants, he should be able to go.\nThe user should be able to create a report for a particular week by entering the week number he wants to add into the system and fill in it.\nAfter the staff finishes and adds the report, the manager should be notified by e-mail. In the subject part of the mail to be sent to the administrator, \"\u003cYear.week no\u003e.Report. \u003cPersonnel name\u003e” should be written.\nIf user should be able to submit weekly reports. If it did, it shouldn't be able to add newlines.\n5.2 Admin Actions:\nAfter logging into the system, the administrator should be able to see the reports of all employees.\n\nFigure 5.2.1 Admin reports display screen\n  \n![image](https://user-images.githubusercontent.com/43602725/148958152-a2374a23-0df7-4086-bd7d-c90d3295f796.png)\n\nIt should be able to search the reports of the employees, and be able to sort them according to the sending status.\n\nFigure 5.2.2 Report filtering options\n\n![image](https://user-images.githubusercontent.com/43602725/148956631-f12f82cb-c4f5-46e0-8984-dc783c81db09.png)\n\nAfter the report is entered and sent to the manager, if the manager finds the information in one of the lines in the report insufficient, he should be able to send the report with an explanation text to the employee with a request for correction.\n\nFigure 5.2.3 Revision comment can be written with the Require revision button.\n  \n![image](https://user-images.githubusercontent.com/43602725/148956725-552506a2-8dbc-415f-b821-5d1f3ee7f240.png)\n\n\nWhen a report correction request is made to the personnel by the manager, the personnel should be notified by e-mail. In the subject part of the mail, \"\u003cWeek number of the year\u003e.Report.Correction Request\" should be written.\n\nWhen the staff responds to the correction request and reposts the report, an e-mail should be sent to the manager. In the subject part of the mail, “\u003cWeek number of the year\u003e.Report. \u003cStaff name\u003e.Revision” should be written.\n\nFigure 5.2.4 The general manager who makes a revision request can send an e-mail by the system as above.\n  \n![image](https://user-images.githubusercontent.com/43602725/148956785-f9d058e4-0c55-40dc-b872-0620d4973af3.png)\n\nUsers will initially be defined as static, on the admin screen. When the manager enters the personnel on the screen, the personnel should be notified by e-mail. You have been invited to the Weekly Report Platform. You can set your password using the link below and start generating a report. When the link to be given in the mail body is clicked, the user should be able to set his own password.\n\nFigure 5.2.5 E-mail register link\n  \n![image](https://user-images.githubusercontent.com/43602725/148956864-980cb794-796c-4205-8ffc-d2bb6ff8c950.png)\n\nFigure 5.2.6 Diagram of relational tables in the database with mysql workbench and reverse engineering method\n  \n![image](https://user-images.githubusercontent.com/43602725/148956938-a237df69-6ea8-49ab-b126-165ff237861e.png)\n\n\n5.3 Shortcomings of the Project:\nSome date fields opened in the database are not used. Angular, especially the models, could not be used fully, the lack of this was felt while developing the project. It lacks abstraction techniques. At some points, the RxJS library has been used for state managing. For this reason, one of the best practices of Angular has been waived from the fact that the flow occurs without refreshing the pages. Improvements can be made for these situations in the future.\n\n\n\n  PROJECT IMAGES:\n![image](https://user-images.githubusercontent.com/43602725/148957143-eba6b65f-4d86-4188-b177-7524aedc0641.png)\n![image](https://user-images.githubusercontent.com/43602725/148957171-8b9c47eb-47aa-4670-94a8-3c3eb9f1d215.png)\n![image](https://user-images.githubusercontent.com/43602725/148957179-f3c8f8af-82c2-48a4-bf1c-5993059da73f.png)\n![image](https://user-images.githubusercontent.com/43602725/148957184-5f4a5dc2-b594-4af2-af9f-36d0d53a0202.png)\n![image](https://user-images.githubusercontent.com/43602725/148957214-d217339d-b784-43fa-8fb1-d55a5ef12a08.png)\n![image](https://user-images.githubusercontent.com/43602725/148957236-b2177f25-e3f0-4ca2-8d80-1d05579eed62.png)\n![image](https://user-images.githubusercontent.com/43602725/148957252-651e2ce0-99fc-46be-844a-e285064c47e5.png)\n![image](https://user-images.githubusercontent.com/43602725/148957257-59102f87-0acf-4f26-a03c-6f62b4978ec3.png)\n![image](https://user-images.githubusercontent.com/43602725/148957267-517595aa-f77b-4e8b-ba9e-d5ab7cc9ed5e.png)\n![image](https://user-images.githubusercontent.com/43602725/148957291-e5511556-0062-4320-9fce-9f7535e87458.png)\nResponsive design\n![image](https://user-images.githubusercontent.com/43602725/148957361-02861d24-37f8-4d99-be87-ea2706317f00.png)\n![image](https://user-images.githubusercontent.com/43602725/148957437-b5db4c69-41d0-4186-8b5e-3f89a573ab64.png)\n![image](https://user-images.githubusercontent.com/43602725/148957467-d930d636-6908-4acb-ba72-53dd1ae853f9.png)\n  \n  REFERENCES:\n  1.\tAngular (framework) - Vikipedi. https://tr.wikipedia.org/wiki/Angular_(Framework)\n2.\tNodeJs - Vikipedi. https://tr.wikipedia.org/wiki/Node.js\n3.\tMYSQL - Vikipedi. https://tr.wikipedia.org/wiki/MySQL\n4.\tExpressJs - Vikipedi. https://tr.wikipedia.org/wiki/Express.js\n5.\tTypeScript - Vikipedi. https://tr.wikipedia.org/wiki/TypeScript\n6.\tPM2 - Vikipedi. https://en.wikipedia.org/wiki/PM2_(software)\n7.\tUbuntu - Vikipedi. https://tr.wikipedia.org/wiki/Ubuntu_(i%C5%9Fletim_sistemi)\n8.\tApache Server - Vikipedi. https://tr.wikipedia.org/wiki/Apache_HTTP_Sunucusu\n9.\tRxJs - Vikipedi. https://en.wikipedia.org/wiki/Reactive_programming\n10.\tBootstrap-Vikipedi. https://en.wikipedia.org/wiki/Bootstrap_(front-end_framework)\n11. NPM - Vikipedi. https://tr.wikipedia.org/wiki/Npm\n12. Vscode - Vikipedi. https://tr.wikipedia.org/wiki/Visual_Studio_Code \n13.\tSQL Server – İstatistik – Statistic Nedir?. https://www.cozumpark.com/sql-server-istatistik-statistic-nedir/\n14.\tSQL Server’da İstatistik Kavramı ve Performansa Etkisi. http://www.veritabani.gen.tr/2016/11/17/sql-serverda-istatistik-kavrami-performansa-etkisi/\n15.\tSQL Server Statistics Basics. - https://www.red-gate.com/simple-talk/databases/sql-server/performance-sql-server/sql-server-statistics-basics/\n16.\tWikipedi - JWT JSON Web Token - Vikipedi (wikipedia.org)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenginkaratas%2Fweekly-reporting-angular","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fenginkaratas%2Fweekly-reporting-angular","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenginkaratas%2Fweekly-reporting-angular/lists"}