Empowering growth by connecting role models and opportunities in tech through a platform for collaboration and inclusivity.
The web app will connect diverse individuals to panels and speaking opportunities by allowing:
- Profiles for speakers to showcase their experience and expertise
- Organizers to search and filter profiles effectively
- A user-friendly platform that balances accessibility and professionalism
Type | Access | Role Type Assignment |
---|---|---|
Superuser/Admin | - Login, logout, and full profile management - Verify and delete inactive profiles - Update platform content - Manage user accounts - Access admin dashboard |
Platform managers and administrators |
Individual User | - Create and update personal profiles - Claim or request profile deletion - Login and logout - Filter and search profiles |
Role models, diverse professionals seeking opportunities |
Guest User | - View profiles - Search profiles but cannot contact without an account |
Event organizers and general users exploring profiles |
Feature | Access | Notes/Conditions |
---|---|---|
Profile Information | Admin, User | Name, title, role, specialization, experience levels (technical and speaking), location, bio, and contact |
Profile Management | Admin, User | Profiles can be created by individuals or by nomination. Inactivity may lead to automatic deactivation |
Search and Filter | Guests, Admin, User | Filter by specialization, location, experience levels |
Profile Claiming | Admin, User | Users can claim a profile if created by someone else. Stretch goal for MVP |
Endpoint/Page | Functionality | Comments |
---|---|---|
Homepage | - Introduction to the platform - Create profile - Carousel of featured profiles - Search and filter functionality |
Responsive design for desktop-first users |
Profiles | - Individual profiles with detailed information - Continuous scroll for browsing profiles - Search and filter functionality |
Key feature of the MVP |
Profile | - Display detailed speaker information - Provide a "Contact Speaker" option (requires login) - Allow users to search and filter profiles - Allow guests to view profiles but restrict contacting |
Key feature of the MVP. Profiles are searchable and filterable |
Create profile | - Provide a form for users to input their details - Allow admins to create or edit profiles for others - Save profiles to the database - Validate inputs |
Users can update their profiles after creation |
Signup Page | - Enable new user registration - Validate email format and passwords - Include CAPTCHA (optional) - Redirect users to create profile |
Email should be mandatory to activate an account |
Admin Dashboard | - Manage all user and profile data - Delete inactive profiles |
Admin access only |
Login/Signup | - Create accounts - Manage login/logout |
Required for contacting profiles |
Profile Management | - Users can create and update their profiles - Admin can verify or delete profiles |
Separate profile creation from account creation |
- Profile likes and connection counts
- Animations for improved user experience
- Responsive design for mobile use
- Claim profiles feature
- Allow guests to view profiles without contact access
- Django / DRF API
- Python
- React / JavaScript
- HTML/CSS
- Heroku
- Netlify
- GitHub
This application's back-end will be deployed to Heroku. The front-end will be deployed separately to Netlify.
We will also use Insomnia to ensure API endpoints are working smoothly (we will utilise a local and deployed environment in Insomnia).
Our platform serves two primary audience segments:
Primary Audience:
- Event organisers in the tech industry looking for women speakers and role models in tech
- Women in tech or transitioning into tech roles, seeking speaking opportunities, and expand their network
- Students and minority folks looking for inspiration and role models
Secondary Audience:
- Professionals seeking to build their personal brand and expand their professional network
- Students and early career professionals exploring tech career paths
Persona | Name | Occupation | Goals | Challenges | Preferred Features | Quote |
---|---|---|---|---|---|---|
Guest/Student/Community Member | Priya Kapoor, 24 | Software Engineering Student | • Discover relatable role models in tech. • Learn about different career paths and specialisations. • Build confidence in pursuing a tech career. |
• Lack of access to diverse representation in the tech industry. • Uncertainty about which specialisation to pursue. |
• Browse functionality for profiles and success stories. • Insights into career paths. • Role models with relatable journeys. |
"I want to explore tech career options and find role models who inspire me." |
Speaker/Role Model | Emily Carter, 37 | AI Research Scientist | • Build a personal brand as an expert in the tech industry. • Inspire and mentor women in tech. • Be discovered for speaking opportunities. |
• Limited time to manage outreach opportunities. • Difficulty showcasing expertise effectively online. |
• Profile creation and editing tools. • Privacy controls for contact preferences. • Easy-to-use interface for highlighting expertise. |
"I want to inspire others while continuing to grow my professional network." |
Event Organiser | Camila Smith, 42 | Event Coordinator at TechTechy | • Find diverse, qualified speakers for tech events. • Streamline the speaker selection process. • Ensure a professional and engaging event experience. |
• Difficulty finding speakers with specific expertise. • Limited time for manual searches and outreach. |
• Advanced search filters (e.g., expertise, location). • Detailed speaker profiles with professional backgrounds. • Contact tools for outreach |
"I want to ensure our events feature speakers who inspire and engage the audience." |
User Type | User Stories | Requirements | Acceptance Criteria |
---|---|---|---|
Guest | As a guest, I want to discover diverse role models in tech so that I can be inspired about potential career paths. | - Browse functionality - Featured speaker portfolios - Success stories - Career path visibility |
- Can browse speaker portfolios freely - Can find relatable speaker portfolios - Can see diverse representations - Can view career journeys |
Guest | As a guest, I want to sign up easily so that I can personalize my experience and access premium features like direct contact. | - Clear registration form - Required fields validation - Privacy policy acceptance - Clear indication of mandatory fields |
- Can create an account with name, email, and password - Can fill in all required profile fields - Sees validation errors in real-time - Can accept terms and privacy policy - Can complete registration process in under 5 minutes - Automatically logs in after successful registration - Can access previously restricted features after signup |
User Type | User Stories | Requirements | Acceptance Criteria |
---|---|---|---|
Speaker | As a speaker, I want to create and manage speaker portfolio(s) so that event organisers can find me for speaking opportunities. | - Registration functionality - Speaker portfolio(s) creation form - Speaker portfolio(s) editing capability - Required fields validation |
- Can create account - Can edit speaker portfolio(s) - Can view own speaker portfolio(s) - Can fill all required fields |
Speaker | As a speaker, I want to manage my contact preferences so that I can be reached appropriately. | - Contact details input - Privacy settings - LinkedIn integration - Contact form preferences |
- Can set preferred contact method - Can link professional speaker portfolio(s) - Can update contact info - Can control visibility |
Speaker | As a speaker, I want to delete my speaker portfolio(s) so that I can remove my information from the platform if I'm no longer available for speaking opportunities. | - Speaker portfolio(s) deletion functionality - Confirmation process / deletion alert - Data removal notification |
- Can initiate speaker portfolio(s) deletion - Must confirm deletion action - All personal data is removed - Cannot be found in search results after deletion - Can still stay signed in to visit others' speaker portfolios and create one again if needed |
Event Organiser | As an event organiser, I want to contact potential speakers so that I can discuss speaking opportunities. | - Contact Buttons - Contact mechanism - Professional messaging - Contact privacy - Response tracking |
- Can initiate contact/reach out to users via LinkedIn or email - Can send professional inquiries - Can track outreach - Can follow up |
Event Organiser | As an event organiser, I want to search for speakers based on specific criteria so that I can find appropriate speakers for my events. | - Search functionality - Multiple filter options: Name & Location - Experience level filtering |
- Can easily access search function - Can search by name and location - Can filter by expertise - Can combine search criteria - Can view search results |
Event Organiser | As an event organiser, I want to browse speaker portfolio(s) so that I can evaluate their suitability for my event. | - Speaker portfolio(s) viewing capability - Detailed information display - Professional background - Speaking history |
- Can view complete speaker portfolio(s) - Can see all relevant info |
Speaker/Event Organiser | As a Speaker/Event Organiser, I want to delete my account so that I can remove all my speaker portfolio(s) and information from the platform if I'm no longer interested in speaking opportunities. | - Account deletion functionality - Deletion confirmation steps - Warning about data loss |
- Can initiate account deletion from account settings - Must acknowledge permanent data loss warning - Can see list of all data to be deleted (speaker portfolios, messages, etc.) - All associated speaker portfolio(s) are removed - All contact information is removed - Cannot log in after grace period expires |
User Type | User Stories | Requirements | Acceptance Criteria |
---|---|---|---|
Admin | As an admin, I want to manage and moderate content so that the platform maintains high quality and professionalism. | - Speaker portfolio(s) deletion functionality - Speaker portfolio(s) editing capability - Account deletion functionality - Account editing capability - Speaker portfolio(s) creation form - User creation form |
- Can manage speaker portfolio(s): View, Create, Edit, Delete - Can manage accounts: View, Create, Edit, Delete - Can maintain quality |
No | HTTP Method | URL | Purpose | Request Body | Successful Response Code | Authentication and Authorization |
---|---|---|---|---|---|---|
1 | POST | /users | Create New User Account | {"firstName":"string", "lastName":"string", "email":"string", "password":"string", "userType":"string"} |
201 | All users |
2 | POST | /users/login | Allow users to log in | {"email":"string", "password":"string"} |
200 | All users |
3 | POST | /users/logout | Allow users to log out (end active session) | None | 200 | User Auth |
4 | GET | /users/me | Get current user's details | None | 200 | User Auth, Admin Auth |
5 | PUT | /users/me | Update user account | {"firstName":"string", "lastName":"string", "email":"string", "password":"string"} |
200 | User Auth, Admin Auth |
6 | DELETE | /users/me | Delete user account and all associated speaker profiles | None | 204 | User Auth, Admin Auth |
7 | GET | /portfolios | List all speaker portfolios | None | 200 | All users |
8 | POST | /portfolios | Create new profile | {"profileName":"string", "profilePhoto":"string", "location":"string", "specializations":["string"], "experienceLevel":"string", "bio":"string", "contactPreferences":{}} |
201 | User Auth, Admin Auth |
9 | GET | /portfolios/:id | Get single profile details | None | 200 | All users |
10 | PUT | /portfolios/:id | Update existing profile | {"profileName":"string", "profilePhoto":"string", "location":"string", "specializations":["string"], "experienceLevel":"string", "bio":"string", "contactPreferences":{}} |
200 | User Auth, Admin Auth |
11 | DELETE | /portfolios/:id | Delete specific profile | None | 204 | User Auth, Admin Auth |
12 | GET | /portfolios/search/name or location | Search profiles with filters | Query param: Name , Location , Specialisation |
200 | All users |
13 | GET | /portfolios/:id/likes | Retrieve the number of likes on a profile | None | 200 | All users |
See V1 (completed Saturday 11 January 2025) of Wireframes here
- Font: Playfair Display
- Source: Google Fonts - Playfair Display
- Usage: Main headings, Navigation text, Important text content
- Font: Inter
- Source: Google Fonts - Inter
- Usage: Body text and general content
- Black (
#000000
)- Usage: Main headings, Navigation text, Important text content, Primary buttons, Footer text
- White (
#FFFFFF
)- Usage: Page background, Input field backgrounds, Modal backgrounds, Card backgrounds, Profile cards
- Orange (
#FF6600
)- Usage: Call-to-action buttons, Selected states, Important indicators, Links hover states, Highlighted text
- Light Gray (
#F5F5F5
)- Usage: Secondary backgrounds, Input field borders, Less prominent elements, Disabled states, Dividers
- Primary Button (Black background, White text)
- Secondary Button (White background, Black border)
- States:
- Inactive State (Light gray)
- Active State (Orange background)
- Disabled State (Light gray)
- Font: Helvetica Neue or Archivo
- Sources:
- Usage: All headings and titles
- Font: Roboto
- Source: Google Fonts - Roboto
- Usage: Body text and general content
- Black (
#000000
)- Usage: Headings, Buttons, Primary text, Navigation links, Footer text
- White (
#FFFFFF
)- Usage: Background, Profile cards, Card backgrounds, Input fields, Error pages
- Burnt Orange (
#D35400
)- Usage: Buttons, Links, Interactive elements, Active elements, Highlighted fields
- Soft Gray (
#E0E0E0
)- Usage: Borders for input fields, Secondary backgrounds, Disabled states, Background for less prominent elements
- Primary Button (Black background, White text)
- Secondary Button (White background, Black border)
- States:
- Inactive State (Light gray)
- Active State (Orange background)
- Disabled State (Light gray)
- Font: Cormorant Garamond
- Source: Google Fonts - Cormorant Garamond
- Usage: All headings and titles
- Font: Open Sans
- Source: Google Fonts - Open Sans
- Usage: Body text and general content
- Soft Black (
#1A1A1A
)- Usage: Headings, Buttons, Primary content, Footer text, Navigation links
- White (
#FFFFFF
)- Usage: Background, Profile cards, Card backgrounds, Modal backgrounds, Input fields
- Orange (
#FF6600
)- Usage: Buttons, Links, Call to actions, Active elements, Highlighted fields
- Light Gray (
#E0E0E0
) or Soft Orange (#FFC299
)- Usage: Borders for input fields, Dividers, Background for less prominent elements, Disabled states
- Primary Button (Soft Black background, White text)
- Secondary Button (White background, Soft Black border)
- Text Styles:
- Heading Text
- Body Text
- Link Text (Orange)
- States:
- Inactive State (Light gray)
- Active State (Orange background)
- Disabled State (Light gray)
The following icon sets are available for use across all style options:
- Search Icon
- User Profile Icon
- Dropdown Icon
- Pagination Icons
- Error Icon
- Edit Icon
- Save Icon