216 lines
9.3 KiB
Plaintext
216 lines
9.3 KiB
Plaintext
|
|
================================================================================
|
||
|
|
SQL SERVER SAMPLE DATA INSERTION
|
||
|
|
Project Management System Database
|
||
|
|
================================================================================
|
||
|
|
|
||
|
|
📋 OVERVIEW:
|
||
|
|
- Insert sample data for testing
|
||
|
|
- Categories, Users, and initial project data
|
||
|
|
- Run after all tables are created
|
||
|
|
|
||
|
|
================================================================================
|
||
|
|
🗄️ STEP 8A: INSERT SAMPLE CATEGORIES
|
||
|
|
================================================================================
|
||
|
|
|
||
|
|
-- STEP 8A: Insert sample project categories
|
||
|
|
USE ProjectManagementDB;
|
||
|
|
GO
|
||
|
|
|
||
|
|
SET IDENTITY_INSERT [dbo].[ProjectCategories] ON;
|
||
|
|
|
||
|
|
INSERT INTO [dbo].[ProjectCategories] ([Id], [Name], [Slug], [Color], [Icon], [Description]) VALUES
|
||
|
|
(1, N'Web Development', N'web-development', N'blue', N'fas fa-code', N'Frontend and backend web applications'),
|
||
|
|
(2, N'Mobile App', N'mobile-app', N'green', N'fas fa-mobile-alt', N'iOS and Android mobile applications'),
|
||
|
|
(3, N'Design', N'design', N'purple', N'fas fa-palette', N'UI/UX design and branding projects'),
|
||
|
|
(4, N'Marketing', N'marketing', N'orange', N'fas fa-bullhorn', N'Digital marketing and campaigns'),
|
||
|
|
(5, N'DevOps', N'devops', N'cyan', N'fas fa-server', N'Infrastructure and deployment projects'),
|
||
|
|
(6, N'Data Science', N'data-science', N'red', N'fas fa-chart-line', N'Analytics and machine learning projects');
|
||
|
|
|
||
|
|
SET IDENTITY_INSERT [dbo].[ProjectCategories] OFF;
|
||
|
|
GO
|
||
|
|
|
||
|
|
PRINT 'STEP 8A COMPLETED: Sample categories inserted!';
|
||
|
|
|
||
|
|
================================================================================
|
||
|
|
🗄️ STEP 8B: INSERT SAMPLE USERS
|
||
|
|
================================================================================
|
||
|
|
|
||
|
|
-- STEP 8B: Insert sample users
|
||
|
|
USE ProjectManagementDB;
|
||
|
|
GO
|
||
|
|
|
||
|
|
SET IDENTITY_INSERT [dbo].[Users] ON;
|
||
|
|
|
||
|
|
INSERT INTO [dbo].[Users] ([Id], [Username], [Email], [FirstName], [LastName], [Role], [Department], [IsActive], [PasswordHash]) VALUES
|
||
|
|
(1, N'john.smith', N'john.smith@company.com', N'John', N'Smith', N'manager', N'IT', 1, N'$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi'),
|
||
|
|
(2, N'sarah.johnson', N'sarah.johnson@company.com', N'Sarah', N'Johnson', N'manager', N'IT', 1, N'$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi'),
|
||
|
|
(3, N'mike.wilson', N'mike.wilson@company.com', N'Mike', N'Wilson', N'manager', N'IT', 1, N'$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi'),
|
||
|
|
(4, N'lisa.chen', N'lisa.chen@company.com', N'Lisa', N'Chen', N'manager', N'Design', 1, N'$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi'),
|
||
|
|
(5, N'alex.rodriguez', N'alex.rodriguez@company.com', N'Alex', N'Rodriguez', N'developer', N'IT', 1, N'$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi'),
|
||
|
|
(6, N'maria.garcia', N'maria.garcia@company.com', N'Maria', N'Garcia', N'designer', N'Design', 1, N'$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi'),
|
||
|
|
(7, N'david.brown', N'david.brown@company.com', N'David', N'Brown', N'developer', N'IT', 1, N'$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi'),
|
||
|
|
(8, N'emma.davis', N'emma.davis@company.com', N'Emma', N'Davis', N'developer', N'IT', 1, N'$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi'),
|
||
|
|
(9, N'james.miller', N'james.miller@company.com', N'James', N'Miller', N'developer', N'IT', 1, N'$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi'),
|
||
|
|
(10, N'admin', N'admin@company.com', N'System', N'Administrator', N'admin', N'IT', 1, N'$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi');
|
||
|
|
|
||
|
|
SET IDENTITY_INSERT [dbo].[Users] OFF;
|
||
|
|
GO
|
||
|
|
|
||
|
|
PRINT 'STEP 8B COMPLETED: Sample users inserted!';
|
||
|
|
|
||
|
|
================================================================================
|
||
|
|
🗄️ STEP 8C: INSERT SAMPLE CLIENTS
|
||
|
|
================================================================================
|
||
|
|
|
||
|
|
-- STEP 8C: Insert sample clients
|
||
|
|
USE ProjectManagementDB;
|
||
|
|
GO
|
||
|
|
|
||
|
|
SET IDENTITY_INSERT [dbo].[Clients] ON;
|
||
|
|
|
||
|
|
INSERT INTO [dbo].[Clients] ([Id], [Name], [Email], [Phone], [Company], [ContactPerson]) VALUES
|
||
|
|
(1, N'ABC Corporation', N'contact@abc-corp.com', N'+1-555-0101', N'ABC Corporation', N'Robert Johnson'),
|
||
|
|
(2, N'XYZ Tech Solutions', N'info@xyz-tech.com', N'+1-555-0102', N'XYZ Tech Solutions', N'Jennifer Smith'),
|
||
|
|
(3, N'Global Enterprises', N'hello@global-ent.com', N'+1-555-0103', N'Global Enterprises', N'Michael Brown'),
|
||
|
|
(4, N'StartupCo', N'team@startupco.com', N'+1-555-0104', N'StartupCo', N'Sarah Wilson'),
|
||
|
|
(5, N'Enterprise Solutions Ltd', N'contact@enterprise-sol.com', N'+1-555-0105', N'Enterprise Solutions Ltd', N'David Lee');
|
||
|
|
|
||
|
|
SET IDENTITY_INSERT [dbo].[Clients] OFF;
|
||
|
|
GO
|
||
|
|
|
||
|
|
PRINT 'STEP 8C COMPLETED: Sample clients inserted!';
|
||
|
|
|
||
|
|
================================================================================
|
||
|
|
🗄️ STEP 8D: INSERT SAMPLE PROJECT
|
||
|
|
================================================================================
|
||
|
|
|
||
|
|
-- STEP 8D: Insert a sample project
|
||
|
|
USE ProjectManagementDB;
|
||
|
|
GO
|
||
|
|
|
||
|
|
SET IDENTITY_INSERT [dbo].[Projects] ON;
|
||
|
|
|
||
|
|
INSERT INTO [dbo].[Projects] (
|
||
|
|
[Id], [ProjectName], [Description], [ClientName], [CategoryId],
|
||
|
|
[Priority], [Status], [StartDate], [EndDate], [Budget], [CreatedBy]
|
||
|
|
) VALUES (
|
||
|
|
1,
|
||
|
|
N'E-commerce Website Development',
|
||
|
|
N'Build a modern e-commerce platform with React frontend and .NET Core backend. Features include product catalog, shopping cart, payment integration, and admin dashboard.',
|
||
|
|
N'ABC Corporation',
|
||
|
|
1, -- Web Development category
|
||
|
|
N'high',
|
||
|
|
N'planning',
|
||
|
|
'2024-01-15',
|
||
|
|
'2024-04-15',
|
||
|
|
50000.00,
|
||
|
|
1 -- Created by John Smith
|
||
|
|
);
|
||
|
|
|
||
|
|
SET IDENTITY_INSERT [dbo].[Projects] OFF;
|
||
|
|
GO
|
||
|
|
|
||
|
|
-- Insert project managers
|
||
|
|
INSERT INTO [dbo].[ProjectManagers] ([ProjectId], [UserId], [AssignedBy], [IsPrimary]) VALUES
|
||
|
|
(1, 1, 10, 1), -- John Smith as primary manager
|
||
|
|
(1, 2, 10, 0); -- Sarah Johnson as secondary manager
|
||
|
|
|
||
|
|
-- Insert team members
|
||
|
|
INSERT INTO [dbo].[ProjectTeamMembers] ([ProjectId], [UserId], [Role], [HourlyRate], [AssignedBy]) VALUES
|
||
|
|
(1, 5, N'Frontend Developer', 75.00, 1), -- Alex Rodriguez
|
||
|
|
(1, 6, N'UI/UX Designer', 65.00, 1), -- Maria Garcia
|
||
|
|
(1, 7, N'Backend Developer', 80.00, 1); -- David Brown
|
||
|
|
|
||
|
|
-- Insert project tags
|
||
|
|
INSERT INTO [dbo].[ProjectTags] ([ProjectId], [TagName], [Color]) VALUES
|
||
|
|
(1, N'react', N'blue'),
|
||
|
|
(1, N'dotnet', N'purple'),
|
||
|
|
(1, N'ecommerce', N'orange'),
|
||
|
|
(1, N'responsive', N'green');
|
||
|
|
|
||
|
|
-- Insert activity log
|
||
|
|
INSERT INTO [dbo].[ProjectActivityLogs] ([ProjectId], [UserId], [Action], [Description]) VALUES
|
||
|
|
(1, 1, N'created', N'Project created with initial team assignment');
|
||
|
|
|
||
|
|
PRINT 'STEP 8D COMPLETED: Sample project inserted!';
|
||
|
|
|
||
|
|
================================================================================
|
||
|
|
🗄️ STEP 8E: VERIFICATION QUERIES
|
||
|
|
================================================================================
|
||
|
|
|
||
|
|
-- STEP 8E: Verify data insertion
|
||
|
|
USE ProjectManagementDB;
|
||
|
|
GO
|
||
|
|
|
||
|
|
-- Check all tables have data
|
||
|
|
SELECT 'ProjectCategories' as TableName, COUNT(*) as RecordCount FROM [dbo].[ProjectCategories]
|
||
|
|
UNION ALL
|
||
|
|
SELECT 'Users', COUNT(*) FROM [dbo].[Users]
|
||
|
|
UNION ALL
|
||
|
|
SELECT 'Clients', COUNT(*) FROM [dbo].[Clients]
|
||
|
|
UNION ALL
|
||
|
|
SELECT 'Projects', COUNT(*) FROM [dbo].[Projects]
|
||
|
|
UNION ALL
|
||
|
|
SELECT 'ProjectManagers', COUNT(*) FROM [dbo].[ProjectManagers]
|
||
|
|
UNION ALL
|
||
|
|
SELECT 'ProjectTeamMembers', COUNT(*) FROM [dbo].[ProjectTeamMembers]
|
||
|
|
UNION ALL
|
||
|
|
SELECT 'ProjectTags', COUNT(*) FROM [dbo].[ProjectTags]
|
||
|
|
UNION ALL
|
||
|
|
SELECT 'ProjectActivityLogs', COUNT(*) FROM [dbo].[ProjectActivityLogs];
|
||
|
|
|
||
|
|
-- Test the views
|
||
|
|
SELECT TOP 5 * FROM [dbo].[vw_ProjectSummary];
|
||
|
|
SELECT TOP 10 * FROM [dbo].[vw_ProjectTeam];
|
||
|
|
|
||
|
|
-- Test API-ready queries
|
||
|
|
-- Get categories for dropdown
|
||
|
|
SELECT [Id], [Name], [Slug], [Color] FROM [dbo].[ProjectCategories] WHERE [IsActive] = 1;
|
||
|
|
|
||
|
|
-- Get managers for multi-select
|
||
|
|
SELECT [Id], [Username], [FullName], [Initials] FROM [dbo].[Users] WHERE [Role] = 'manager' AND [IsActive] = 1;
|
||
|
|
|
||
|
|
-- Get developers/designers for team selection
|
||
|
|
SELECT [Id], [Username], [FullName], [Initials], [Role] FROM [dbo].[Users]
|
||
|
|
WHERE [Role] IN ('developer', 'designer') AND [IsActive] = 1;
|
||
|
|
|
||
|
|
PRINT 'STEP 8E COMPLETED: Data verification completed!';
|
||
|
|
PRINT '================================================================================';
|
||
|
|
PRINT 'DATABASE SETUP COMPLETED SUCCESSFULLY!';
|
||
|
|
PRINT 'You can now use the database with your Create Project form.';
|
||
|
|
PRINT '================================================================================';
|
||
|
|
|
||
|
|
================================================================================
|
||
|
|
🗄️ USEFUL QUERIES FOR TESTING
|
||
|
|
================================================================================
|
||
|
|
|
||
|
|
-- Get project details with team
|
||
|
|
SELECT
|
||
|
|
p.ProjectName,
|
||
|
|
p.ClientName,
|
||
|
|
pc.Name as Category,
|
||
|
|
p.Priority,
|
||
|
|
p.Status,
|
||
|
|
p.Budget,
|
||
|
|
STRING_AGG(DISTINCT um.FullName, ', ') as Managers,
|
||
|
|
STRING_AGG(DISTINCT ut.FullName, ', ') as TeamMembers
|
||
|
|
FROM Projects p
|
||
|
|
LEFT JOIN ProjectCategories pc ON p.CategoryId = pc.Id
|
||
|
|
LEFT JOIN ProjectManagers pm ON p.Id = pm.ProjectId
|
||
|
|
LEFT JOIN Users um ON pm.UserId = um.Id
|
||
|
|
LEFT JOIN ProjectTeamMembers ptm ON p.Id = ptm.ProjectId AND ptm.RemovedAt IS NULL
|
||
|
|
LEFT JOIN Users ut ON ptm.UserId = ut.Id
|
||
|
|
WHERE p.DeletedAt IS NULL
|
||
|
|
GROUP BY p.Id, p.ProjectName, p.ClientName, pc.Name, p.Priority, p.Status, p.Budget;
|
||
|
|
|
||
|
|
-- Get project activity timeline
|
||
|
|
SELECT
|
||
|
|
pal.Action,
|
||
|
|
pal.Description,
|
||
|
|
u.FullName as PerformedBy,
|
||
|
|
pal.CreatedAt
|
||
|
|
FROM ProjectActivityLogs pal
|
||
|
|
JOIN Users u ON pal.UserId = u.Id
|
||
|
|
WHERE pal.ProjectId = 1
|
||
|
|
ORDER BY pal.CreatedAt DESC;
|