Skip to content

SheCodesAus/cyber_sharks_backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Product Name - To Be Confirmed

Table of Contents

Mission Statement

Features

Technical Implementation

Target Audience

Back-end Implementation

Front-end Implementation

Style Guide

Mission Statement

Empowering growth by connecting role models and opportunities in tech through a platform for collaboration and inclusivity.

Features

Summary

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

Users

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

Collections

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

Pages/Endpoint Functionality

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

Nice To Haves

  • 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

Technical Implementation

Back-End

  • Django / DRF API
  • Python

Front-End

  • React / JavaScript
  • HTML/CSS

Git & Deployment

  • 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).

Target Audience

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

User Personas

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 Stories

User Stories, Requirements, and Acceptance Criteria

FIRST LEVEL USER - ALL USERS

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

SECOND LEVEL USER - LOGGED IN USERS

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

THIRD LEVEL USER - ADMIN

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

Back-end Implementation

API Specification

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

Database Schema

Database Schema V2

Front-end Implementation

Wireframes

See V1 (completed Saturday 11 January 2025) of Wireframes here

Design Inspiration

Design Inspiration

Wireframes - Version 1

Wireframe: homepage

Wireframe - HOME

Wireframe - HOME

Wireframe - LOGIN

Wireframe - LOGIN

Wireframe - SIGNIN

Wireframe - SIGNIN

Wireframe - SHOWING RESULTS

Wireframe - SHOWING RESULTS

Wireframe - PROFILE

Wireframe - PROFILE

Wireframe - CREATE PROFILE

Wireframe - CREATE PROFILE

Wireframe - ERROR PAGE

Wireframe - ERROR PAGE

Wireframe - PAGE NO RESULT

Wireframe - PAGE NO RESULT

Style Guide

Option 1: AESOP Style

AESOP Style Guide

Typography

Headings

Body Text

Color Palette

Primary Colors

  • Black (#000000)
    • Usage: Main headings, Navigation text, Important text content, Primary buttons, Footer text

Secondary Colors

  • White (#FFFFFF)
    • Usage: Page background, Input field backgrounds, Modal backgrounds, Card backgrounds, Profile cards

Accent Colors

  1. Orange (#FF6600)
    • Usage: Call-to-action buttons, Selected states, Important indicators, Links hover states, Highlighted text
  2. Light Gray (#F5F5F5)
    • Usage: Secondary backgrounds, Input field borders, Less prominent elements, Disabled states, Dividers

Interactive 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)

Option 2: Sunroom Style

Sunroom Style Guide

Typography

Headings

Body Text

Color Palette

Primary Colors

  • Black (#000000)
    • Usage: Headings, Buttons, Primary text, Navigation links, Footer text

Secondary Colors

  • White (#FFFFFF)
    • Usage: Background, Profile cards, Card backgrounds, Input fields, Error pages

Accent Colors

  1. Burnt Orange (#D35400)
    • Usage: Buttons, Links, Interactive elements, Active elements, Highlighted fields
  2. Soft Gray (#E0E0E0)
    • Usage: Borders for input fields, Secondary backgrounds, Disabled states, Background for less prominent elements

Interactive 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)

Option 3: Hinge Style

Hinge Style Guide

Typography

Headings

Body Text

Color Palette

Primary Colors

  • Soft Black (#1A1A1A)
    • Usage: Headings, Buttons, Primary content, Footer text, Navigation links

Secondary Colors

  • White (#FFFFFF)
    • Usage: Background, Profile cards, Card backgrounds, Modal backgrounds, Input fields

Accent Colors

  1. Orange (#FF6600)
    • Usage: Buttons, Links, Call to actions, Active elements, Highlighted fields
  2. Light Gray (#E0E0E0) or Soft Orange (#FFC299)
    • Usage: Borders for input fields, Dividers, Background for less prominent elements, Disabled states

Interactive Elements

  • 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)

Icons

The following icon sets are available for use across all style options:

Common Icons Used

  • Search Icon
  • User Profile Icon
  • Dropdown Icon
  • Pagination Icons
  • Error Icon
  • Edit Icon
  • Save Icon

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published