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:
Radosław Gierwiało
2025-11-12 17:50:44 +01:00
commit 80ff4a70bf
38 changed files with 7213 additions and 0 deletions

View 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',
},
];

View 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',
},
];

View 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',
},
];

View 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',
};