Top

TimeSync Folder Structure

Refer this page to understand the folder structure of our project, so that you can navigate and make changes in the project easily.

  • TimeSync
    • Properties
      • launchsetting.json
    • wwwroot
      • assets
        • audio
          • horse.ogg
        • css
          • vendors
            • bootstrap
              • bootstrap-grid.css
              • bootstrap-reboot.css
              • bootstrap-utilities.css
              • bootstrap.css
            • animate.css
            • aos.css
            • bootstrap.css
            • button-builder.css
            • calendar.css
            • chartist.css
            • datatable-extension.css
            • datatables.css
            • date-picker.css
            • daterange-picker.css
            • dropzone.css
            • feather-icon.css
            • flag-icon.css
            • fontawesome.css
            • icofont.css
            • image-cropper.css
            • ionic-icon.css
            • jsgrid.css
            • mapsjs-ui.css
            • material-design-icon.css
            • owlcarousel.css
            • page-builder.css
            • pe7-icon.css
            • photoswipe.css
            • print.css
            • prism.css
            • range-slider.css
            • rating.css
            • responsive.css
            • scrollable.css
            • select2.css
            • simple-line-icon.css
            • simple-mde.css
            • sticky.css
            • style.css
            • summernote.css
            • svg-icon.css
            • sweetalert2.css
            • themify.css
            • timepicker.css
            • todo.css
            • tour.css
            • tree.css
            • typicon-icon.css
            • vector-map.css
            • vertical-menu.css
            • whether-icon.css
          • button-builder.css
          • color-1.css
          • color-2.css
          • color-3.css
          • color-4.css
          • color-5.css
          • color-6.css
          • custom.css
          • fontawesome.css
          • responsive.css
          • style.css
        • fonts
          • calendar
          • feather
          • flag-icon
          • font-awesome
          • ico
          • ionic-icon
          • material-design-icon
          • pe7-icon
          • simple-line-icon
          • summernote
          • themify
          • typicon-icon
        • images
          • button_builder
          • calender
          • checkout
          • dashboard
          • landing
          • logo
          • range-slider
          • svg-icon
          • tree
          • user
          • ajax-loader.gif
          • answers_sprite.png
          • Approved.png
          • Rejected.png
          • favicon.png
          • hour.svg
          • js-grid.png
          • min.svg
          • sec.svg
          • settings.png
          • smiley.png
          • sort_asc.png
          • sort_asc_disabled.png
          • sort_both.png
          • sort_desc.png
          • sort_desc_disabled.png
          • TimesheeApproved.png
          • TimesheeRejected.png
          • User.jpg
        • js
          • animation
            • animate-custom.js
            • aos
              • aos.js
              • aos-init.js
            • scroll-reveal
              • reveal-custom.js
              • scrollreveal.min.js
            • tilt
              • tilt.jquery.js
              • tilt-custom.js
            • wow
              • wow.min.js
              • wow-init.js
          • bootstrap
            • bootstrap.js
            • popper.min.js
          • button-builder
            • clipboard.min.js
            • colorpicker.js
            • extend-1.0.js
            • generator.js
          • calendar
            • app.js
            • calendars.js
            • chance.min.js
            • inital.js
            • moment.min.js
            • schedules.js
            • tui-calendar.js
            • tui-code-snippet.min.js
            • tui-date-picker.min.js
            • tui-time-picker.min.js
          • chart
            • apex-chart
              • apex-chart.js
              • chart-custom.js
              • moment.min.js
              • stock-prices.js
            • chartist
              • chartist.js
              • chartist-custom.js
              • chartist-plugin-tooltip.js
            • chartjs
              • chart.custom.js
              • chart.min.js
            • flot-chart
              • excanvas.js
              • excanvas.min.js
              • flot-script.js
              • jquery.flot.canvas.js
              • jquery.flot.categories.js
              • jquery.flot.crosshair.js
              • jquery.flot.errorbars.js
              • jquery.flot.fillbetween.js
              • jquery.flot.image.js
              • jquery.flot.js
              • jquery.flot.navigate.js
              • jquery.flot.pie.js
              • jquery.flot.resize.js
              • jquery.flot.selection.js
              • jquery.flot.stack.js
              • jquery.flot.symbol.js
              • jquery.flot.threshold.js
              • jquery.flot.time.js
              • jquery.js
            • google
              • google-chart.js
              • google-chart-loader.js
            • knob
              • knob.min.js
              • knob-chart.js
            • morris-chart
              • morris.js
              • morris.min.js
              • morris-script.js
              • prettify.min.js
              • raphael.js
            • peity-chart
              • peity.jquery.js
              • peity-custom.js
            • sparkline
              • sparkline.js
              • sparkline-script.js
          • clipboard
            • clipboard.min.js
            • clipboard-script.js
          • counter
            • counter-custom.js
            • jquery.counterup.min.js
            • jquery.waypoints.min.js
          • datatable
            • datatable-extension
              • buttons.bootstrap4.min.js
              • buttons.colVis.min.js
              • buttons.html5.min.js
              • buttons.print.min.js
              • custom.js
              • dataTables.autoFill.min.js
              • dataTables.bootstrap4.min.js
              • dataTables.buttons.min.js
              • dataTables.colReorder.min.js
              • dataTables.fixedHeader.min.js
              • dataTables.keyTable.min.js
              • dataTables.responsive.min.js
              • dataTables.rowReorder.min.js
              • dataTables.scroller.min.js
              • dataTables.select.min.js
              • jszip.min.js
              • pdfmake.min.js
              • responsive.bootstrap4.min.js
              • vfs_fonts.js
            • datatables
              • datatable.custom.js
              • jquery.dataTables.min.js
          • datepicker
            • date-picker
              • datepicker.custom.js
              • datepicker.en.js
              • datepicker.js
            • daterange-picker
              • daterangepicker.js
              • daterange-picker.custom.js
              • moment.min.js
            • date-time-picker
              • datetimepicker.custom.js
              • moment.min.js
              • tempusdominus-bootstrap-4.min.js
          • dragable
            • jquery-ui.min.js
            • sortable.js
            • sortable-custom.js
          • drilldown
            • dropdown-collapse-main.js
            • dropdown-coolapse-menu-aim.js
          • dropzone
            • dropzone.js
            • dropzone-scrip.js
            • dropzone-script.js
          • editor
            • ace-editor
              • ace.js
              • ace-custom.js
              • mode-css.js
              • mode-html.js
              • mode-javascript.js
              • mode-php.js
              • theme-monokai.js
              • worker-css.js
              • worker-html.js
              • worker-javascript.js
              • worker-php.js
            • ckeditor
              • adapters
                • jquery.js
              • build-config.js
              • ckeditor.custom.js
              • ckeditor.js
              • config.js
              • contents.css
              • lang
              • plugins
              • skins
              • styles.js
            • simple-mde
              • simplemde.custom.js
              • simplemde.min.js
            • summernote
              • summernote.custom.js
              • summernote.js
          • form-builder
            • form-builder-1
              • main-built.js
              • require.js
            • form-builder-2
              • beautifyhtml.js
              • form-builder-2.js
          • icons
            • feather-icon
              • feather.min.js
              • feather-icon.js
              • feather-icon-clipart.js
            • flag-icon-clipart.js
            • icon-clipart.js
            • icons-notify.js
            • whether-icon-clipart.js
          • image-cropper
            • cropper.js
            • cropper-main.js
          • internationalization
            • language-picker.js
          • jarallax_libs
            • jarallax.js
            • libs.min.js
          • jsgrid
            • griddata.js
            • jsgrid.js
            • jsgrid.min.js
          • map-js
            • custom.js
            • download.png
            • mapsjs-core.js
            • mapsjs-mapevents.js
            • mapsjs-service.js
            • mapsjs-ui.js
          • notify
            • bootstrap-notify.min.js
            • index.js
            • notify-script.js
          • owlcarousel
            • owl.carousel.js
            • owl-custom.js
          • page-builder
            • ckeditor.js
            • config.js
            • jquery.grideditor.min.js
            • jquery.js
            • lang
            • page-builder-custom.js
            • skins
            • styles.js
          • photoswipe
            • photoswipe.js
            • photoswipe.min.js
            • photoswipe-ui-default.min.js
          • prism
            • prism.min.js
          • range-slider
            • ion.rangeSlider.min.js
            • rangeslider-script.js
          • rating
            • jquery.barrating.js
            • rating-script.js
          • scrollable
            • perfect-scrollbar.min.js
            • scrollable-custom.js
          • select2
            • select2.full.min.js
            • select2-custom.js
          • sticky
            • sticky.js
          • sweet-alert
            • app.js
            • sweetalert.min.js
          • theme-customizer
            • customizer.js
          • timeline
            • timeline-v-1
              • main.js
            • timeline-v-2
              • jquery.timeliny.min.js
              • timeline-v-2-custom.js
          • time-picker
            • clockpicker.js
            • highlight.min.js
            • jquery-clockpicker.min.js
          • todo
            • todo.js
          • touchspin
            • input-groups.min.js
            • touchspin.js
            • vendors.min.js
          • tour
            • intro.js
            • intro-init.js
          • tree
            • jstree.min.js
            • tree.js
          • typeahead
            • data
            • handlebars.js
            • typeahead.bundle.js
            • typeahead.custom.js
          • vector-map
            • jquery-jvectormap-2.0.2.min.js
            • map
            • map-vector.js
          • button-tooltip-custom.js
          • chart-widget.js
          • comapct-menu.js
          • config.js
          • countdown.js
          • ecommerce.js
          • email-app.js
          • form-validation-custom.js
          • fullscreen.js
          • general-widget.js
          • height-equal.js
          • hide-on-scroll.js
          • isotope.pkgd.js
          • jquery.drilldown.js
          • jquery.ui.min.js
          • jquery-3.5.1.min.js
          • landing_sticky.js
          • login.js
          • masonry-gallery.js
          • megamenu.js
          • modal-animated.js
          • modernizr.js
          • popover-custom.js
          • print.js
          • product-list-custom.js
          • product-tab.js
          • radial-chart-tooltip.js
          • script.js
          • scrollpy_landing.js
          • sidebar-menu.js
          • support-ticket-custom.js
          • tooltip-init.js
        • scss
          • base
            • _reset.scss
            • _typography.scss
          • components
            • _according.scss
            • _alert.scss
            • _avatars.scss
            • _badge.scss
            • _bookmark.scss
            • _breadcrumb.scss
            • _builders.scss
            • _buttons.scss
            • _card.scss
            • _color.scss
            • _datatable.scss
            • _datepicker.scss
            • _dropdown.scss
            • _dropzone.scss
            • _form-builder.scss
            • _form-input.scss
            • _form-wizard.scss
            • _forms.scss
            • _form_builder-2.scss
            • _general.scss
            • _icons.scss
            • _list.scss
            • _loader.scss
            • _popover.scss
            • _print.scss
            • _radio.scss
            • _ribbon.scss
            • _switch.scss
            • _tab.scss
            • _table.scss
            • _touchspin.scss
            • _tour.scss
            • _tree.scss
            • _typeahead-search.scss
          • layout
            • _box-layout.scss
            • _footer.scss
            • _grid.scss
            • _header.scss
            • _navs.scss
            • _rtl.scss
            • _search.scss
            • _select2.scss
            • _sidebar.scss
          • pages
            • _blog.scss
            • _bookmark-app.scss
            • _cart.scss
            • _chart.scss
            • _chat.scss
            • _checkout.scss
            • _comingsoon.scss
            • _contacts.scss
            • _dashboard_2.scss
            • _dashboard_default.scss
            • _ecommerce.scss
            • _email-application.scss
            • _errorpage.scss
            • _faq.scss
            • _file.scss
            • _gallery.scss
            • _internationalization.scss
            • _job-search.scss
            • _jsgrid.scss
            • _kanban.scss
            • _knowledgebase.scss
            • _landing.scss
            • _language.scss
            • _learning.scss
            • _login.scss
            • _megaoption.scss
            • _order-history.scss
            • _page.scss
            • _pricing.scss
            • _progress.scss
            • _projectlist.scss
            • _social-app.scss
            • _task.scss
            • _timeline-v.scss
            • _timeliny.scss
            • _user-profile.scss
            • _wishlist.scss
          • themes
            • _dark-sidebar.scss
            • _dark.scss
            • _document.scss
            • _responsive.scss
            • _theme-customizer.scss
          • utils
            • _variables.scss
          • vendors
            • chartist.scss
            • feather-icon.scss
            • flag-icon.css
            • icofont.scss
            • image-cropper.scss
            • ionic-icon.scss
            • page-builder.scss
            • scrollable.scss
            • select2.scss
            • simple-line-icon.scss
            • simple-mde.scss
            • sticky.scss
            • summernote.scss
            • svg-icon.scss
            • sweetalert2.scss
            • themify.scss
            • timepicker.scss
            • todo.scss
            • tour.scss
            • tree.scss
            • typicon-icon.scss
            • vector-map.scss
            • whether-icon.scss
            • chartist
              • _chartist-settings.scss
              • _chartist.scss
            • feather-icon
              • _feather-icon.scss
            • flag-icon
              • _flag-icon-base.scss
              • _flag-icon-list.scss
              • _flag-icon-more.scss
            • font-awesome
              • _animated.scss
              • _bordered-pulled.scss
              • _core.scss
              • _fixed-width.scss
              • _icons.scss
              • _larger.scss
              • _list.scss
              • _mixins.scss
              • _path.scss
              • _rotated-flipped.scss
              • _screen-reader.scss
              • _stacked.scss
              • _variables.scss
            • icoicon
              • _icons.scss
            • image-cropper
              • _cropper-custom.scss
              • _cropper-main.scss
            • ionic-icon
              • _ionicons-font.scss
              • _ionicons-icons.scss
              • _ionicons-variables.scss
            • page-builder
              • _page-builder.scss
            • scrollable
              • _scrollable.scss
            • select2
            • simple-line-icon
              • _simple-line-icons.scss
            • simple-mde
              • _elements.scss
              • _simplemde.scss
            • sticky
              • _sticky.scss
            • summernote
              • _elements.scss
              • _fonts.scss
              • _summernote-bs4.scss
            • svg-icon
              • _svg-icon.scss
            • sweetalert2-master
              • _animations.scss
              • _mixins.scss
              • _toasts.scss
              • _variables.scss
            • themify
              • _core.scss
              • _extras.scss
              • _icons.scss
              • _mixins.scss
              • _path.scss
              • _themify-icons.scss
              • _variables.scss
            • time-picker
              • _timepicker.scss
            • todo
              • _todo.scss
            • tour
              • _tour.scss
            • tree
              • _tree-default.scss
              • _tree.scss
            • typicon-icon
              • _typicon-icon.scss
            • vector-map
              • _vector-map.scss
            • whether-icon
              • _whether-icon.scss
        • svg
          • icon-sprite.svg
          • landing-icons
      • css
        • mvc-grid
          • mvc-grid.css
        • bundlesOutput.min.css
        • bundlesOutputExtra.min.min.css
      • js
        • mvc-grid
          • mvc-grid.js
        • PageScripts
          • LeaveRequests.js
          • Timesheet.js
          • TimesheetManagement.js
        • bundlesOutput.min.js
        • bundleOutputNoMinify.min.js
        • shared.js
        • simpleBundleOutput.min.js
      • lib
        • bootstrap
        • jquery-validation
        • jquery-validation-unobtrusive
    • Areas
      • Identity
        • Pages
          • Account
            • MyProfile
              • Edit.cshtml
              • Index.cshtml
            • UserManagement
              • _list.cshtml
              • AddEdit.cshtml
              • Index.cshtml
            • _ViewImports
            • AccessDenied
            • ChangePassword
            • ForgotPassword
            • Lockout
            • Login
            • Logout
            • Register
            • ResetPassword
          • _ValidationScriptsPartial.cshtml
          • _ViewImports.cshtml
          • _ViewStart.cshtml
    • Classes
      • AutocompleteLabel.cs
      • ClaimsPrincipalExtensions.cs
      • CustomRoleComparer.cs
      • DropdownData.cs
      • EnumExtensions.cs
      • MappingProfile.cs
      • MvcGridColumnRenderer.cs
    • Controllers
      • ReportController.cs
      • SearchController.cs
    • Data
      • ApplicationDbContext.cs
      • ApplicationUser.cs
    • Enums
      • ContractType.cs
      • NotificationType.cs
      • RequestStatus.cs
      • ScheduleType.cs
      • WeekType.cs
    • Migrations
    • Model
      • Domain
        • Look
          • Department.cs
          • Holiday.cs
          • LeaveType.cs
          • Office.cs
          • PayrollSchedule.cs
          • Program.cs
          • WorkSchedule.cs
          • WorkScheduleDetail.cs
        • LeaveBalance.cs
        • LeaveRequest.cs
        • LeaveRequestDetail.cs
        • LeaveRequestHistory.cs
        • Timesheet.cs
        • TimesheetDetail.cs
      • DTOs
        • Look
          • DepartmentDTO.cs
          • LeaveTypeDTO.cs
          • OfficeDTO.cs
          • PayrollScheduleDTO.cs
          • ProgramDTO.cs
          • WorkScheduleDTO.cs
          • WorkScheduleDetailDTO.cs
        • ApplicationUserDTO.cs
        • LeaveBalanceDTO.cs
        • LeaveRequestDetailDTO.cs
        • LeaveRequestDTO.cs
        • TimesheetDetailDTO.cs
        • TimesheetDTO.cs
      • ViewModels
        • Look
          • HolidayVM.cs
          • LeaveTypeVM.cs
          • PayrollScheduleVM.cs
          • ProgramVM.cs
          • WorkScheduleDetailVM.cs
          • WorkScheduleVM.cs
        • ChangePasswordVM.cs
        • EventVM.cs
        • ForgotPasswordVM.cs
        • ImportVM.cs
        • LeaveRequestDetailVM.cs
        • LeaveRequestVM.cs
        • Notification.cs
        • ReportVM.cs
        • ResetPasswordVM.cs
        • TaskVM.cs
        • TimesheetDetailVM.cs
        • TimesheetManagementVM.cs
        • TimesheetProgramSummaryVM.cs
        • TimesheetSummaryVM.cs
        • TimesheetVM.cs
        • UserVM.cs
    • Pages
      • AccrualBalance
        • _addEdit.cshtml
        • _list.cshtml
        • Index.cshtml
      • LeaveRequests
        • _list.cshtml
        • Index.cshtml
        • RequestApproval.cshtml
      • Look
        • Holidays
          • _addEdit.cshtml
          • _list.cshtml
          • Index.cshtml
        • PayrollSchedules
          • _addEdit.cshtml
          • _list.cshtml
          • Index.cshtml
        • Programs
          • _addEdit.cshtml
          • _list.cshtml
          • Index.cshtml
        • WorkSchedules
          • _addEdit.cshtml
          • _list.cshtml
          • Index.cshtml
      • Reports
        • LOAReport.cshtml
        • PayrollReport.cshtml
      • Shared
        • MvcGrid
          • _Grid.cshtml
          • _Pager.cshtml
        • _AccessDenied.cshtml
        • _Footer.cshtml
        • _Header.cshtml
        • _Layout.cshtml
        • _Loader.cshtml
        • _LoginLayout.cshtml
        • _LoginPartial.cshtml
        • _Notification.cshtml
        • _ProgressLoader.cshtml
        • _Script.cshtml
        • _SidePanel.cshtml
        • _SimpleLayout.cshtml
        • _SimpleScript.cshtml
        • _Style.cshtml
        • _ValidationScriptsPartial.cshtml
      • Timesheets
        • Management
          • _list.cshtml
          • Index.cshtml
        • _addEdit.cshtml
        • _list.cshtml
        • Index.cshtml
        • TimesheetApproval.cshtml
      • _ViewImports.cshtml
      • _ViewStart.cshtml
      • Error.cshtml
      • Index.cshtml
    • Repositories
      • Look
        • DepartmentRepository.cs
        • HolidayRepository.cs
        • LeaveTypeRepository.cs
        • OfficeRepository.cs
        • PayrollScheduleRepository.cs
        • ProgramRepository.cs
        • WorkScheduleRepository.cs
      • LeaveBalanceRepository.cs
      • LeaveRequestRepository.cs
      • ReportRepository.cs
      • SearchRepository.cs
      • TimesheetRepository.cs
      • UserRepository.cs
    • Services
      • DailyTaskService.cs
      • MailService.cs
      • ProgressService.cs
      • RazorRenderService.cs
    • Templates
      • Emails
        • ForgotPassword.html
        • ForgotPasswordWithRandomPassword.html
        • LeaveRequestApproval.html
        • TimesheetApproval.html
      • Reports
        • LOAReport.xlsx
        • PayrollReport.xlsx
        • RequestForLeaveOfAbsence.xlsx
        • TimeAllocationReport.xlsx
        • Timesheet.xlsx
    • appsettings.json
    • bundleconfig.json
    • Program.cs

TimeSync

This folder contains all the other files and folders related to the project. Information regarding those folders is given below.

Properties

The Properties folder contains development-time settings for launching the application. The launchSettings.json file defines how the project runs locally, including the development URLs and environment. This file is not used in production deployments and is typically ignored in CI/CD pipelines.

wwwroot

Apart from the html we require many other files to make our website more interative and attractive. These type of files are stored in this folder. It contains all the scss files , images, and the javascript files. We recommend you keep the name of the folder "public" as it is saved as the default path in the node for accessing the public files.

Areas

Contains all files related to user authentication and authorization using ASP.NET Core Identity. This includes pages like Login, Register, and any custom extensions to identity.

Classes

This folder includes general-purpose helper classes that provide extensions, mappings, UI rendering logic, and utility features shared across the project.

Controllers

The Controllers folder contains API controllers responsible for handling HTTP requests and responses. These controllers expose RESTful endpoints that allow front-end components (like Razor Pages or JavaScript/jQuery) to communicate with the back-end. Each controller focuses on a specific responsibility or feature, following the Single Responsibility Principle.

Data

The Data folder contains the application's Entity Framework Core (EF Core) data access layer, which is responsible for interacting with the SQL Server database.

Enums

The Enums folder contains enumerations (enums) used throughout the application to represent a set of predefined constant values. Enums improve code readability, reduce magic strings/numbers, and help enforce valid value constraints in your domain logic, models, and UI.

Migrations

The Migrations folder contains Entity Framework Core migration files that track changes to your database schema over time. This allows you to use code-first development, where your C# models drive the structure of your SQL Server database. Migrations help manage and version your database structure in a consistent, automated, and team-friendly way.

Models

The Models folder organizes different representations of your application's data into separate subfolders based on their purpose:

  1. Domain: Core business entities that represent the database structure.
  2. DTOs (Data Transfer Objects): Lightweight objects used to send/receive data between the client and server.
  3. ViewModels: Custom models tailored for views or pages, often combining multiple entities or shaping data specifically for the UI.

Pages

This folder contains all Razor Pages used in the application’s front-end interface. Each page typically has:

  1. A .cshtml file — defines the HTML UI using Razor syntax
  2. A .cshtml.cs file — the associated C# PageModel that handles logic such as data loading, form submissions, and validation.

Repositories

This folder implements the Repository Pattern to manage data access in a clean, testable, and decoupled way. Each repository encapsulates the logic required to access specific entities in the database, and may include filtering, sorting, or custom queries.

Services

The Services folder contains classes that implement business and infrastructure services — reusable operations that support the application's workflows but are not tied directly to data access or UI rendering. Services in this folder may handle tasks like sending emails, generating progress reports, scheduling daily tasks, and rendering Razor views into strings.

Templates

This folder contains static templates used for email generation and Excel-based reporting. Templates are loaded, populated with data, and used to generate consistent communication and reporting across the application.

  1. EmailTemplates/ — HTML files for different email scenarios such as approvals, and forgot password.
  2. ReportTemplates/ — Excel templates for structured exports (e.g., LOA, timesheet and payroll reports).

appsettings.json

This file contains configuration settings for the application, including database connection strings, logging levels, email settings, and custom values used across services. It allows you to centralize settings and avoid hardcoding values.

bundleconfig.json

This file defines the bundling and minification rules for the project's static front-end assets. The tool reads this configuration to:

  1. Combine multiple .css or .js files into a single file
  2. Minify them to reduce size for faster loading

Program.cs

This file is the main entry point of the ASP.NET Core application. It initializes the app by:

  1. Creating the web host
  2. Registering services (e.g., database, repositories, business logic)
  3. Configuring middleware (e.g., routing, error handling, authentication)
  4. Defining endpoint mappings (Razor Pages, Controllers)
  5. Defining endpoint mappings (Razor Pages, Controllers)
  6. Running the app
It uses top-level statements (a modern C# feature) to keep configuration concise.