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
-
wwwroot
-
assets
-
audio
-
css
-
vendors
-
bootstrap
-
bootstrap
-
vendors
-
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
-
js
-
animation
-
aos
-
scroll-reveal
-
tilt
-
wow
-
aos
-
bootstrap
-
button-builder
-
calendar
-
chart
-
apex-chart
-
chartist
-
chartjs
-
flot-chart
-
google
-
knob
-
morris-chart
-
peity-chart
-
sparkline
-
apex-chart
-
clipboard
-
counter
-
datatable
-
datatable-extension
-
datatables
-
datatable-extension
-
datepicker
-
date-picker
-
daterange-picker
-
date-time-picker
-
date-picker
-
dragable
-
drilldown
-
dropzone
-
editor
-
ace-editor
-
ckeditor
-
adapters
- lang
- plugins
- skins
-
adapters
-
simple-mde
-
summernote
-
ace-editor
-
form-builder
-
form-builder-1
-
form-builder-2
-
form-builder-1
-
icons
-
feather-icon
-
feather-icon
-
image-cropper
-
internationalization
-
jarallax_libs
-
jsgrid
-
map-js
-
notify
-
owlcarousel
-
page-builder
- lang
- skins
-
photoswipe
-
prism
-
range-slider
-
rating
-
scrollable
-
select2
-
sticky
-
sweet-alert
-
theme-customizer
-
timeline
-
timeline-v-1
-
timeline-v-2
-
timeline-v-1
-
time-picker
-
todo
-
touchspin
-
tour
-
tree
-
typeahead
- data
-
vector-map
- map
-
animation
-
scss
-
base
-
components
-
layout
-
pages
-
themes
-
utils
-
vendors
-
chartist
-
feather-icon
-
flag-icon
-
font-awesome
-
icoicon
-
image-cropper
-
ionic-icon
-
page-builder
-
scrollable
- select2
-
simple-line-icon
-
simple-mde
-
sticky
-
summernote
-
svg-icon
-
sweetalert2-master
-
themify
-
time-picker
-
todo
-
tour
-
tree
-
typicon-icon
-
vector-map
-
whether-icon
-
chartist
-
base
-
svg
-
audio
-
css
-
mvc-grid
-
mvc-grid
-
js
-
mvc-grid
-
PageScripts
-
mvc-grid
-
lib
- bootstrap
- jquery-validation
- jquery-validation-unobtrusive
-
assets
-
Areas
-
Identity
-
Pages
-
Account
-
MyProfile
-
UserManagement
-
MyProfile
-
Account
-
Pages
-
Identity
-
Classes
-
Controllers
-
Data
-
Enums
- Migrations
-
Model
-
Domain
-
Look
-
Look
-
DTOs
-
Look
-
Look
-
ViewModels
-
Look
-
Look
-
Domain
-
Pages
-
AccrualBalance
-
LeaveRequests
-
Look
-
Holidays
-
PayrollSchedules
-
Programs
-
WorkSchedules
-
Holidays
-
Reports
-
Shared
-
MvcGrid
-
MvcGrid
-
Timesheets
-
Management
-
Management
-
AccrualBalance
-
Repositories
-
Look
-
Look
-
Services
-
Templates
-
Emails
-
Reports
-
Emails
-
Properties
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:
- Domain: Core business entities that represent the database structure.
- DTOs (Data Transfer Objects): Lightweight objects used to send/receive data between the client and server.
- 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:
- A .cshtml file — defines the HTML UI using Razor syntax
- 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.
- EmailTemplates/ — HTML files for different email scenarios such as approvals, and forgot password.
- 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:
- Combine multiple .css or .js files into a single file
- 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:
- Creating the web host
- Registering services (e.g., database, repositories, business logic)
- Configuring middleware (e.g., routing, error handling, authentication)
- Defining endpoint mappings (Razor Pages, Controllers)
- Defining endpoint mappings (Razor Pages, Controllers)
- Running the app