feat: initial project setup with frontend mockup
- Docker Compose setup with nginx reverse proxy and frontend service - React + Vite + Tailwind CSS configuration - Complete mockup of all application views: - Authentication (login/register) - Events list and selection - Event chat with matchmaking - 1:1 private chat with WebRTC P2P video transfer mockup - Partner rating system - Collaboration history - Mock data for users, events, messages, matches, and ratings - All UI text and messages in English - Project documentation (CONTEXT.md, TODO.md, README.md, QUICKSTART.md)
This commit is contained in:
42
frontend/src/mocks/events.js
Normal file
42
frontend/src/mocks/events.js
Normal file
@@ -0,0 +1,42 @@
|
||||
export const mockEvents = [
|
||||
{
|
||||
id: 1,
|
||||
name: 'Warsaw Dance Festival 2025',
|
||||
location: 'Warsaw, Poland',
|
||||
start_date: '2025-03-15',
|
||||
end_date: '2025-03-17',
|
||||
worldsdc_id: 'wdf-2025',
|
||||
participants_count: 156,
|
||||
description: 'The biggest West Coast Swing event in Central Europe',
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
name: 'Berlin Swing Out',
|
||||
location: 'Berlin, Germany',
|
||||
start_date: '2025-04-20',
|
||||
end_date: '2025-04-22',
|
||||
worldsdc_id: 'bso-2025',
|
||||
participants_count: 203,
|
||||
description: 'Three days of amazing dancing and workshops',
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
name: 'Prague Dance Weekend',
|
||||
location: 'Prague, Czech Republic',
|
||||
start_date: '2025-05-10',
|
||||
end_date: '2025-05-12',
|
||||
worldsdc_id: 'pdw-2025',
|
||||
participants_count: 89,
|
||||
description: 'Intimate event with world-class instructors',
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
name: 'Krakow Swing Festival',
|
||||
location: 'Krakow, Poland',
|
||||
start_date: '2025-06-07',
|
||||
end_date: '2025-06-09',
|
||||
worldsdc_id: 'ksf-2025',
|
||||
participants_count: 124,
|
||||
description: 'Dancing in the heart of historical Krakow',
|
||||
},
|
||||
];
|
||||
79
frontend/src/mocks/matches.js
Normal file
79
frontend/src/mocks/matches.js
Normal file
@@ -0,0 +1,79 @@
|
||||
export const mockMatches = [
|
||||
{
|
||||
id: 1,
|
||||
user1_id: 1,
|
||||
user2_id: 2,
|
||||
user2_name: 'sarah_swing',
|
||||
user2_avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Sarah',
|
||||
event_id: 1,
|
||||
event_name: 'Warsaw Dance Festival 2025',
|
||||
status: 'active',
|
||||
room_id: 10,
|
||||
created_at: '2025-03-14T11:00:00Z',
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
user1_id: 1,
|
||||
user2_id: 3,
|
||||
user2_name: 'mike_moves',
|
||||
user2_avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Mike',
|
||||
event_id: 1,
|
||||
event_name: 'Warsaw Dance Festival 2025',
|
||||
status: 'completed',
|
||||
room_id: 11,
|
||||
created_at: '2025-03-13T14:30:00Z',
|
||||
completed_at: '2025-03-13T16:45:00Z',
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
user1_id: 1,
|
||||
user2_id: 4,
|
||||
user2_name: 'emma_elegant',
|
||||
user2_avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Emma',
|
||||
event_id: 2,
|
||||
event_name: 'Berlin Swing Out',
|
||||
status: 'completed',
|
||||
room_id: 12,
|
||||
created_at: '2025-02-20T10:00:00Z',
|
||||
completed_at: '2025-02-20T15:30:00Z',
|
||||
},
|
||||
];
|
||||
|
||||
export const mockRatings = [
|
||||
{
|
||||
id: 1,
|
||||
match_id: 2,
|
||||
rater_id: 1,
|
||||
rated_id: 3,
|
||||
rated_name: 'mike_moves',
|
||||
rated_avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Mike',
|
||||
score: 5,
|
||||
comment: 'Great energy and smooth moves! Would love to dance again.',
|
||||
would_collaborate_again: true,
|
||||
created_at: '2025-03-13T17:00:00Z',
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
match_id: 3,
|
||||
rater_id: 1,
|
||||
rated_id: 4,
|
||||
rated_name: 'emma_elegant',
|
||||
rated_avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Emma',
|
||||
score: 5,
|
||||
comment: 'Amazing dancer with excellent technique. Highly recommend!',
|
||||
would_collaborate_again: true,
|
||||
created_at: '2025-02-20T16:00:00Z',
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
match_id: 2,
|
||||
rater_id: 3,
|
||||
rated_id: 1,
|
||||
rated_name: 'john_dancer',
|
||||
rated_avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=John',
|
||||
score: 4,
|
||||
comment: 'Good collaboration, very professional!',
|
||||
would_collaborate_again: true,
|
||||
created_at: '2025-03-13T17:15:00Z',
|
||||
},
|
||||
];
|
||||
81
frontend/src/mocks/messages.js
Normal file
81
frontend/src/mocks/messages.js
Normal file
@@ -0,0 +1,81 @@
|
||||
export const mockEventMessages = [
|
||||
{
|
||||
id: 1,
|
||||
room_id: 1,
|
||||
user_id: 2,
|
||||
username: 'sarah_swing',
|
||||
avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Sarah',
|
||||
content: 'Hey everyone! Looking forward to dancing this weekend!',
|
||||
type: 'text',
|
||||
created_at: '2025-03-14T10:30:00Z',
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
room_id: 1,
|
||||
user_id: 3,
|
||||
username: 'mike_moves',
|
||||
avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Mike',
|
||||
content: 'Anyone interested in filming some socials together?',
|
||||
type: 'text',
|
||||
created_at: '2025-03-14T10:32:00Z',
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
room_id: 1,
|
||||
user_id: 4,
|
||||
username: 'emma_elegant',
|
||||
avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Emma',
|
||||
content: 'I\'m in! Would love to collaborate',
|
||||
type: 'text',
|
||||
created_at: '2025-03-14T10:35:00Z',
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
room_id: 1,
|
||||
user_id: 5,
|
||||
username: 'alex_awesome',
|
||||
avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Alex',
|
||||
content: 'This is my first event. Super excited!',
|
||||
type: 'text',
|
||||
created_at: '2025-03-14T10:40:00Z',
|
||||
},
|
||||
];
|
||||
|
||||
export const mockPrivateMessages = [
|
||||
{
|
||||
id: 101,
|
||||
room_id: 10,
|
||||
user_id: 2,
|
||||
username: 'sarah_swing',
|
||||
content: 'Hi! Great to match with you!',
|
||||
type: 'text',
|
||||
created_at: '2025-03-14T11:00:00Z',
|
||||
},
|
||||
{
|
||||
id: 102,
|
||||
room_id: 10,
|
||||
user_id: 1,
|
||||
username: 'john_dancer',
|
||||
content: 'Same here! When do you want to record?',
|
||||
type: 'text',
|
||||
created_at: '2025-03-14T11:02:00Z',
|
||||
},
|
||||
{
|
||||
id: 103,
|
||||
room_id: 10,
|
||||
user_id: 2,
|
||||
username: 'sarah_swing',
|
||||
content: 'How about after the next workshop?',
|
||||
type: 'text',
|
||||
created_at: '2025-03-14T11:03:00Z',
|
||||
},
|
||||
{
|
||||
id: 104,
|
||||
room_id: 10,
|
||||
user_id: 1,
|
||||
username: 'john_dancer',
|
||||
content: 'Perfect! See you then 👍',
|
||||
type: 'text',
|
||||
created_at: '2025-03-14T11:05:00Z',
|
||||
},
|
||||
];
|
||||
58
frontend/src/mocks/users.js
Normal file
58
frontend/src/mocks/users.js
Normal file
@@ -0,0 +1,58 @@
|
||||
export const mockUsers = [
|
||||
{
|
||||
id: 1,
|
||||
username: 'john_dancer',
|
||||
email: 'john@example.com',
|
||||
avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=John',
|
||||
rating: 4.8,
|
||||
matches_count: 23,
|
||||
created_at: '2024-01-15',
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
username: 'sarah_swing',
|
||||
email: 'sarah@example.com',
|
||||
avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Sarah',
|
||||
rating: 4.9,
|
||||
matches_count: 31,
|
||||
created_at: '2024-02-20',
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
username: 'mike_moves',
|
||||
email: 'mike@example.com',
|
||||
avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Mike',
|
||||
rating: 4.6,
|
||||
matches_count: 18,
|
||||
created_at: '2024-03-10',
|
||||
},
|
||||
{
|
||||
id: 4,
|
||||
username: 'emma_elegant',
|
||||
email: 'emma@example.com',
|
||||
avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Emma',
|
||||
rating: 4.95,
|
||||
matches_count: 42,
|
||||
created_at: '2023-11-05',
|
||||
},
|
||||
{
|
||||
id: 5,
|
||||
username: 'alex_awesome',
|
||||
email: 'alex@example.com',
|
||||
avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=Alex',
|
||||
rating: 4.7,
|
||||
matches_count: 27,
|
||||
created_at: '2024-04-12',
|
||||
},
|
||||
];
|
||||
|
||||
// Current logged-in user
|
||||
export const mockCurrentUser = {
|
||||
id: 1,
|
||||
username: 'john_dancer',
|
||||
email: 'john@example.com',
|
||||
avatar: 'https://api.dicebear.com/7.x/avataaars/svg?seed=John',
|
||||
rating: 4.8,
|
||||
matches_count: 23,
|
||||
created_at: '2024-01-15',
|
||||
};
|
||||
Reference in New Issue
Block a user