{"id":22343414,"url":"https://github.com/datajuggler/docgen","last_synced_at":"2025-06-20T17:35:52.696Z","repository":{"id":258232442,"uuid":"871654326","full_name":"DataJuggler/DocGen","owner":"DataJuggler","description":"DocGen reads a Visual Studio Solution and will stores the data in SQL and create a documentation database.","archived":false,"fork":false,"pushed_at":"2024-11-23T18:16:38.000Z","size":1502,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-31T11:16:01.437Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DataJuggler.png","metadata":{"files":{"readme":"ReadMe.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2024-10-12T15:08:21.000Z","updated_at":"2024-11-23T18:16:42.000Z","dependencies_parsed_at":"2024-11-23T21:02:15.023Z","dependency_job_id":null,"html_url":"https://github.com/DataJuggler/DocGen","commit_stats":null,"previous_names":["datajuggler/docgen"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataJuggler%2FDocGen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataJuggler%2FDocGen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataJuggler%2FDocGen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DataJuggler%2FDocGen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DataJuggler","download_url":"https://codeload.github.com/DataJuggler/DocGen/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245631659,"owners_count":20647185,"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","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":[],"created_at":"2024-12-04T08:16:03.119Z","updated_at":"2025-03-26T09:43:31.913Z","avatar_url":"https://github.com/DataJuggler.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"﻿DataJuggler.DocGen analyzes and Saves the code objects found in a Visual Studio solution in SQL Server.\nThe main purpose of this project is to create documentation, but there are other uses.\n\nCode For The NuGet package and this project\nhttps://github.com/DataJuggler/DocGen\n\nThe GitHub repo is here and has a Sample Windows Forms application. For now all it does\nis analyze a solution and save all the details in SQL Server. Coming soon is a Blazor admin portal \nto allow a solution owner to manage the documentation including editing, hiding, showing and\ncreating code samples or images.\n\n# Descriptions\nFor now, the descriptions for projects are read from the .csproject files.\n\nAll other descriptions are read from Summary Text if present.\n\n    /// \u003csummary\u003e\n    /// This class is the code behind for the CalendarComponent\n    /// \u003c/summary\u003e\n    public partial class CalendarComponent : IBlazorComponent, IBlazorComponentParent\n\nIn the above example, the description would be parsed to \n\n    This class is the code behind for the CalendarComponent.\n\nI am investigating if there is a free or very cheap way to have AI write descriptions if a description is not present.\n\nHere is the code to analyze an entire solution\n\n    // Create a new instance of an 'UICallback' object.\n    UICallback uICallback = new UICallback(UpdateBatchProgress, UpdateOverallProgress);\n    \n    // Retrieve the Solution\n    Solution = await DocGenerator.AnalyzeSolution(SolutionSelector.Text, uICallback);\n\nUICallback is a class that contains two delegates:\n\nThe MainForm has two status labels and two progress bars. Overall Progress is for Projects and\nthe Batch Progress is for the Code Files of that project.\n\n    #region UpdateBatchProgress(int max, int currentValue, string status)\n    /// \u003csummary\u003e\n    /// Update Batch Progress\n    /// \u003c/summary\u003e\n    public void UpdateBatchProgress(int max, int currentValue, string status)\n    {\n        // Set the Text\n        BatchStatusLabel.Text = status;\n        \n        // Setup the Progressbar\n        BatchGraph.Maximum = max;\n        BatchGraph.Value = currentValue;\n        \n        // Force an update\n        Refresh();\n        Application.DoEvents();\n    }\n    #endregion\n    \n    #region UpdateOverallProgress(int max, int currentValue, string status)\n    /// \u003csummary\u003e\n    /// Update Overall Progress\n    /// \u003c/summary\u003e\n    public void UpdateOverallProgress(int max, int currentValue, string status)\n    {\n        // Set the Text\n        OverallStatusLabel.Text = status;\n        \n        // Setup the Progressbar\n        OverallGraph.Maximum = max;\n        OverallGraph.Value = currentValue;\n        \n        // Force an update\n        Refresh();\n        Application.DoEvents();\n    }\n    #endregion\n\n# Saving Results In SQL Server\nTo save a solution after Analyzing, create a System Environment Variable named DocGenConn, containing\na connection string to SQL Server. Create a database named DocGen and create a connection string.\n\n# Example Connection Strings\n Replace out ServerName. You must have Encrypt=False in the connection string.\n\n    SQL Server\n    Data Source=ServerName;Initial Catalog=DocGen;Integrated Security=True;Encrypt=False;\n\n\tSQL Express\n    Data Source=ServerName\\SQLExpress;Initial Catalog=DocGen;Integrated Security=True;Encrypt=False;\n\n# Future Updates\nThe next feature I will add is the ability to get a list of projects from the solution, in case you only want to generate\ndocs for certain projects. Then as I get time start working on a Blazor portal to generate and host documentation.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatajuggler%2Fdocgen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatajuggler%2Fdocgen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatajuggler%2Fdocgen/lists"}