{"id":23304153,"url":"https://github.com/timothyjan/jantasktracker","last_synced_at":"2025-07-21T04:36:29.531Z","repository":{"id":268798989,"uuid":"905493234","full_name":"TimothyJan/JanTaskTracker","owner":"TimothyJan","description":"Full-stack task and employee management app with CRUD functionality for projects, tasks, employees, departments, and roles using ASP.NET Core, Angular, Bootstrap, and SQL Server.","archived":false,"fork":false,"pushed_at":"2025-01-14T19:59:34.000Z","size":17067,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-06T23:21:11.545Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","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/TimothyJan.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":"2024-12-19T00:07:29.000Z","updated_at":"2025-01-14T19:59:38.000Z","dependencies_parsed_at":"2024-12-19T02:19:17.780Z","dependency_job_id":"d3decefc-8dab-4755-98f8-3b9064f79c86","html_url":"https://github.com/TimothyJan/JanTaskTracker","commit_stats":{"total_commits":3,"total_committers":1,"mean_commits":3.0,"dds":0.0,"last_synced_commit":"2195b981c756bfd71c524e9236a74630995a3dcb"},"previous_names":["timothyjan/jantasktracker"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TimothyJan/JanTaskTracker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimothyJan%2FJanTaskTracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimothyJan%2FJanTaskTracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimothyJan%2FJanTaskTracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimothyJan%2FJanTaskTracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TimothyJan","download_url":"https://codeload.github.com/TimothyJan/JanTaskTracker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TimothyJan%2FJanTaskTracker/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266241291,"owners_count":23898066,"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-20T11:15:54.857Z","updated_at":"2025-07-21T04:36:29.510Z","avatar_url":"https://github.com/TimothyJan.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JanTaskTracker\nFull-stack project task and employee management app with CRUD functionality for projects, tasks, employees, departments, and roles using ASP.NET Core, Angular, Bootstrap, and SQL Server.\n\nProcess:\n\u003cul\u003e\n  \u003cli\u003eSQL Server Management Studio\n    \u003cul\u003e\n      \u003cli\u003eConnect to Server\n        \u003cul\u003e\n          \u003cli\u003eServer Type: Database Engine\u003c/li\u003e\n          \u003cli\u003eServer Name: localhost\u003c/li\u003e\n          \u003cli\u003eAuthentication: Windows Authentication\u003c/li\u003e\n          \u003cli\u003eConnect\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/li\u003e\n      \u003cli\u003eCreate a new Database\n        \u003cul\u003e\n          \u003cli\u003eIn the \u003cstrong\u003eObject Explorer\u003c/strong\u003e, right-click on Databases and select \u003cstrong\u003eNew Database\u003c/strong\u003e\u003c/li\u003e\n          \u003cli\u003eDatabase Name: TaskTrackrDb\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/li\u003e\n      \u003cli\u003eConfigure a User\n        \u003cul\u003e\n          \u003cli\u003eExpand the \u003cstrong\u003eSecurity\u003c/strong\u003e node.\u003c/li\u003e\n          \u003cli\u003eRight-click \u003cstrong\u003eLogins\u003c/strong\u003e and select \u003cstrong\u003eNew Login\u003c/strong\u003e\u003c/li\u003e\n          \u003cli\u003eIn the \u003cstrong\u003eLogin - New\u003c/strong\u003e dialog:\n            \u003cul\u003e\n              \u003cli\u003eLogin Name: Enter a username\u003c/li\u003e\n              \u003cli\u003eAuthentication: Choose SQL Server Authentication and set a password.\u003c/li\u003e\n            \u003c/ul\u003e\n          \u003c/li\u003e\n          \u003cli\u003eIn the left panel, go to \u003cstrong\u003eUser Mapping\u003c/strong\u003e, check your database (TaskTrackrDb), and assign the db_owner role.\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/li\u003e\n      \u003cli\u003eConfigure the Connection String in appsettings.json\n        \u003cul\u003e\n          \u003cli\u003e\u003ccode\u003e\"DefaultConnection\": \"Server=(localdb)\\\\MSSQLLocalDB;Database=TaskTrackrDb;Trusted_Connection=True;\"\u003c/code\u003e\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003eCreate ASP.NET Core API\n    \u003cul\u003e\n      \u003cli\u003eAdd Required NuGet Packages\n        \u003cul\u003e\n          \u003cli\u003e\u003ccode\u003eMicrosoft.EntityFrameworkCore\u003c/code\u003e\u003c/li\u003e\n          \u003cli\u003e\u003ccode\u003eMicrosoft.EntityFrameworkCore.SqlServer\u003c/code\u003e\u003c/li\u003e\n          \u003cli\u003e\u003ccode\u003eMicrosoft.EntityFrameworkCore.Tools\u003c/code\u003e\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/li\u003e\n      \u003cli\u003eCreate Models(Department, Role, Employee, Project, ProjectTask) with data annotations.\u003c/li\u003e\n      \u003cli\u003eCreate DTOs to transfer only the required data between the client and server. Also to avoid exposing the navigation properties that cause cycles.\n        \u003cul\u003e\n          \u003cli\u003eDTOs allow you to shape the data sent to the client and avoid exposing the navigation properties that cause cycles.\n          \u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/li\u003e\n      \u003cli\u003eCreate Database Context JanTaskTrackerDbContext\n        \u003cul\u003e\n          \u003cli\u003eThis serves as a bridge between the application and the database using Entity Framework Core.\u003c/li\u003e\n          \u003cli\u003eDbContext is used for querying data, tracking changes, saving data and managing relationships.\u003c/li\u003e\n          \u003cli\u003eRestrict delete behavior to prevent cascading deletes for roles and departments.\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/li\u003e\n      \u003cli\u003eCreate Controllers for each Model.\u003c/li\u003e\n      \u003cli\u003eConfigure Program.cs to use connection string to SQL Server\u003c/li\u003e\n      \u003cli\u003eCreate migrations and apply to the database to create tables\n        \u003cul\u003e\n          \u003cli\u003eAdd Migration: ~\u003ccode\u003edotnet ef migrations add InitialCreate\u003c/code\u003e\u003c/li\u003e\n          \u003cli\u003eApply Migration: ~\u003ccode\u003edotnet ef database update\u003c/code\u003e\u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/li\u003e\n      \u003cli\u003eSeed database with dummy data\n        \u003cul\u003e\n          \u003cli\u003eCreate SeedData.cs.\u003c/li\u003e\n          \u003cli\u003eModify Program.cs to call the \u003ccode\u003eSeedData.Initialize\u003c/code\u003e method during application startup.\u003c/li\u003e\n          \u003cli\u003eAdd migrations and apply to the database to create tables\n            \u003cul\u003e\n              \u003cli\u003eAdd Migration: ~\u003ccode\u003edotnet ef migrations add SeedDataMigration\u003c/code\u003e\u003c/li\u003e\n              \u003cli\u003eApply Migration: ~\u003ccode\u003edotnet ef database update\u003c/code\u003e\u003c/li\u003e\n            \u003c/ul\u003e\n          \u003c/li\u003e\n          \u003cli\u003eClean and Recreate Database (Development Only)\n            \u003cul\u003e\n              \u003cli\u003e~\u003ccode\u003edotnet ef database drop\u003c/code\u003e\u003c/li\u003e\n              \u003cli\u003e~\u003ccode\u003edotnet ef migrations remove\u003c/code\u003e\u003c/li\u003e\n              \u003cli\u003e~\u003ccode\u003edotnet ef migrations add InitialCreate\u003c/code\u003e\u003c/li\u003e\n              \u003cli\u003e~\u003ccode\u003edotnet ef database update\u003c/code\u003e\u003c/li\u003e\n            \u003c/ul\u003e\n          \u003c/li\u003e\n        \u003c/ul\u003e\n      \u003c/li\u003e\n      \u003cli\u003eTest all methods on Swagger.\n      \u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003eFrontend with Angular and Bootstrap\n    \u003cul\u003e\n      \u003cli\u003eCreate models(Department, Role, Employee, Project, ProjectTask).\u003c/li\u003e\n      \u003cli\u003eCreate services to handle communication with the database.\u003c/li\u003e\n      \u003cli\u003eInstall Bootstap: ~\u003ccode\u003enpm install bootstrap\u003c/code\u003e\u003c/li\u003e\n      \u003cli\u003eCreate components for project-list and user-list.\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n\n\u003c/ul\u003e\n\nProjects List\n\u003cimg src=\"/screenshots/1-ProjectsList.png\"\u003e\u003cbr\u003e\n\nCreate New Project\n\u003cimg src=\"/screenshots/2-CreateNewProject.png\"\u003e\u003cbr\u003e\n\nEdit Project\n\u003cimg src=\"/screenshots/3-EditProject.png\"\u003e\u003cbr\u003e\n\nAdd Project Task\n\u003cimg src=\"/screenshots/4-AddProjectTask.png\"\u003e\u003cbr\u003e\n\nEdit Project Task\n\u003cimg src=\"/screenshots/5-EditProjectTask.png\"\u003e\u003cbr\u003e\n\nAdd Employee\n\u003cimg src=\"/screenshots/6-AddEmployee.png\"\u003e\u003cbr\u003e\n\nEdit Employee\n\u003cimg src=\"/screenshots/7-EditEmployee.png\"\u003e\u003cbr\u003e\n\nAdd Department\n\u003cimg src=\"/screenshots/8-AddDepartment.png\"\u003e\u003cbr\u003e\n\nEdit Department\n\u003cimg src=\"/screenshots/9-EditDepartment.png\"\u003e\u003cbr\u003e\n\nAdd Role\n\u003cimg src=\"/screenshots/10-AddRole.png\"\u003e\u003cbr\u003e\n\nEdit Role\n\u003cimg src=\"/screenshots/11-EditRole.png\"\u003e\u003cbr\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimothyjan%2Fjantasktracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftimothyjan%2Fjantasktracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimothyjan%2Fjantasktracker/lists"}