The document outlines requirements for a website that allows musicians and filmmakers to connect. Key features include:
- Users can create profiles, search profiles, and post projects seeking collaborators in two categories (music and film).
- Only upgraded paid accounts can immediately view contact details for new project postings. Free accounts must wait 12 hours unless the poster pays a fee to list it as "urgent".
- The site will have internationalization for multiple languages and allow users to select their preferred language. Content like profiles will reflect the user's chosen language.
1. Project details: FILMMUSICAGENT.COM
The general purpose of the site is to offer a way for Musicians and Filmmakers to connect with each
other. They can post projects seeking help from a filmmaker or musician that other members can see
and apply for. They can search other registered member's profiles.
This will be a new version of a site that was originally built in 2002. You can see it still in use at the
following address: http://www.versusmedia.com . The new site is similar, but has some differences.
Only look at the old site for a general idea of how things worked before.
Key changes:
1) The old site forced site users to sign up separately as a Musician, and then another account if
they also were a Filmmaker. You could not sign up for both with the same account. The new
site allows them to have 1 account that does both. The old site was also only in English.
2) Internationalization
Please create but leave empty the Laravel Internationalization arrays for the following additional
languages:
Spanish, French, Chinese, Khmer
Please remember that all static titles and fields must offer Internationalization options. Examples:
Register page, Upgrade Account, Logged in Member's area.
Payment options: I will use Stripe.com to take credit card payments.
Price options:
Option 1) 1 month - $20
Option 2) 3 months - $50
Option 3) 1 year - $150
All 3 must be setup with recurring payments using Stripe
TAGS: I want to have a database of tags they each profile can include in their profile. These tags are
also usable by people who post projects.
Example tags: Hip Hop, Rock, Reggae, Country, Rap, Action, Horror, Drama, Comedy, Romance.
Tags are static, and should be able to use the Internationalization array.
NOTE: A cron script or something similar must run every day that checks auto unsubscribes all
members expiring that day if they have cancelled their auto renew.
Page 1
2. HOMEPAGE
Text that says:
Filmmakers
Are you a filmmaker seeking music for your film? Are you a filmmaker seeking help from other
filmmakers?
Text that says:
Musicians
Post collaboration needs: I'm a musician seeking other musicians to work with me on an album, film
project, etc.
Homepage should show:
- logo
- 2-3 upgraded account profile images with name. These need to link to the persons' profile pages. If
the viewing person has a language choice selected (check the Cookie/session for a set language): The
profiles that show should reflect their chosen language. If none exist for that language, we default to
English profiles.
- Bullet point listing of 10 recent video projects
- Bullet point listing of 10 recent audio projects
- login link to login page
- register link takes you to register page
- short bullet list or paragraph right below above explaining the basics of the site
- twitter feed
- connect to blog/article section. Show 3 most recent blog article title with small summary. With a
"View All Articles" link below
Links to general info pages:
About Us
FAQ
Membership Price explanation and Details
Contact Us
Stock Agreements - See current one here - http://www.versusmedia.com/downloads.php
Page 2
3. ARTICLE SECTION: (LIKE A BLOG)
List articles in order from newest to oldest. All articles are posted by upgraded members. We ALSO
have the ability to post articles. Response to articles will use Facebook comment section.
SEARCH RESULTS PAGE
Search box should be available on all pages
Search engine searches all profiles
Search Results:
When a site visitor chooses their language at the top of the page, they will start to see more results from
the same language first.
ADVANCED SEARCH PAGE
A link to an "Advanced search" page
Advanced search options: Can be checkboxes or dropdowns - country, language, tag search (using the
Tags available from a tag database)
UPCOMING EVENTS PAGE
This page should list all upcoming events in order from closest date to furthest away date. This page
should list image, Title, Location, and Date Time. It should click through to the full page for each
event. Individual events should contain all details: image for the event, Location name, address,
website url, date and time, Event title, content body area.
Page 3
4. REGISTRATION PAGE
- Leave body content area above the form where I can type some details.
- Registration form
Registration form should have the following fields:
Page 1:
Name (required)
E-mail address (required)
Country (required)
Language preference dropdown (required)
Primary focus (required - dropdown choices - Musician, Filmmaker
Website url (optional)
Facebook page url (optional)
Twitter page url (optional)
Phone (optional)
“About” content text box to describe themselves.
Tags - it lets them choose Tags from our tag database
"Register Button"
Once they submit this form, it takes them to Page 2.
“Account is now created”.
They are redirected to Page 2, which offers them the ability to Upgrade their account.
Page 2:
Leave body content area at top where I can sxplain the benefits of upgrading.
Upgrade form fields:
Dropdown option for choices: 1 month, 3 month, 1 year
Credit Card form : (typical fields needed to accept credit card. Name, address, phone, credit card
details)
Have a “No Thanks” link at the bottom of the page .
Redirect them to front page of Account section.
Page 4
5. UPGRADE ACCOUNT PAGE:
This page is accessible for a registered site user once they are logged in. They can come here to change
their current recurring plan, cancel their plan, etc.
This could be the same page as Page 2 above, or it can be a separate page.
It will have a dropdown to choose plan: 1 month, 3 month, 1 year
Credit card form to accept card.
EACH PUBLIC PROFILE PAGE
Profiles:
- All profiles are visible from web
- All posted projects are visible from web, contact information is private. Requires upgraded account to
view.
Profiles are shown on the site in whatever language the person wrote their profile in.
Example: “User A” created a profile and said their default language was Spanish. “User A” types
content into their “About” box in Spanish. Their profile on our site would be in Spanish, and show up
in search results in Spanish. Just display it as they typed it. This seems obvious, but wanted to mention
it.
*** I would like to use the "Dynamic items Translation" item I mentioned in my original notes. If I am
search profiles, and my default language is English (or my set language is English) and I am looking at
someone's profile that was written in Chinese, there needs to be a "Translate" link underneath the
"About" section. Clicking this link should auto translate the "About" from Chinese into English, and
display the translation. Facebook does something similar underneath each Timeline post not in your
native language.
Display an icon or the word "Upgraded" if their account is currently upgraded
Profiles will show:
Name
Country Location
What their primary focus is. Musician or Filmmaker.
Display their filled in About content section.
Media player to play audio/video using HTML5 (*** audio/video can only show if they are upgraded).
This should pull in their music and video files.
Photos (10 maximum)
Page 5
6. LOGGED IN SECTION: USER ACCOUNT SECTION
Links that should be shown in the logged in area are:
Edit My Profile
View Current Listings
“Post A Film Project”
“Post a Music Project” (same page as above, but would like to give both links as options)
- If not upgraded, show a link for "Upgrade Account"
- If upgraded, link to:
"Audios/Videos"
"Photos"
"View/Post Articles"
View Current Listings (Film and Music)
This page should a link list of all project “short descriptions” and posted date and be ordered by post
date newest listings at the top. A dropdown option should allow the ability to show only “Projects
seeking Filmmakers” or “Projects seeking Musicians”. This dropdown would show/hide listings from
the correct category.
Clinking on a project link would take you to view the full project details.
A Project Listing's page
Accounts that ARE NOT upgraded must wait 12 hours to be able to view a new listing. The
programming code must make new listings' contact information unviewable by checking current
date/time. If the listing was posted less than 12 hours ago, the contact information is unviewable. *
We need to explain this on the Listing page. So if the person clicks on a listing and they are not
upgraded, it should tell them they still need to wait (for example) 3 hours :29 minutes until the listing is
made available to free accounts. Provide an upgrade link so they can go upgrade. ALSO NOTE: the
person who POSTED the project can pay $10 (for Urgent projects) to make the project immediately
available to everyone. *If this has been paid, there is no time delay. Everyone can view the project
immediately.
Accounts that ARE upgraded are able to immediately view all listings.
Fields to show for a listing:
Project Type: will be either Music or Film
Project Location: will display a Country name
Long Description : filled in by person who posted project
Tags: selected from the Tags directory
Pay Details
Preferred method of contact: either "Contact me by E-mail" or "Contact me by Phone Number"
Page 6
7. Plus the contact information if a person is upgraded or it's been 12 hours since the posting went up:
Person's Name, phone, email, physical address, website, picture.
***** "Dynamic items Translation" : I want to use this idea for the Listings. When you view a listing.
A "Translate" link needs to be available that translates Project Type, Long Description, Pay Details,
Preferred method of contact.
Post A Film/Music Project (all accounts can post a project music or film related) - see previous
details. Account holders who are not upgraded can not view the new posting during the first 12 hours it
is posted. However, the person who is posting the project can pay $10 (for Urgent projects) to make
the project immediately available to everyone. This page needs a content area at the top I can type
some of this explanations.
---
Fields to include on Post a Film/Music Project page:
Project Type - dropdown for Music or Film
Project Location - dropdown of Countries
Short Description - like a title text field
Long Description - bigger text field box
Tags - this would pull from the Tags directory
Pay Details - text field
Preferred method of contact - dropdown "Contact me by E-mail" or "Contact me by Phone Number"
Once they "submit" this form. They need to be redirected to a page thanking them for posting their
listing. "Urgent Listing" - There needs to be an area where I can explain that the project is only
viewable to upgrade account members for the next 12 hours. However, if they want the project to be
immediately available to everyone they can pay $10 right now to make it available to everyone. This
page should have the credit card form already available to purchase the Urgent Listing status.
Audios/Videos - (posting audio and videos requires an upgraded account) - These files should be
hidden from a profile if an account is no longer upgraded because the subscription expired. 2 Videos
max. 15 audio files max.
Photos - (posting audio and videos requires an upgraded account) - They can upload up to 10 photos.
Allow them to choose one to be their main profile picture.
View/ Post Articles (Viewing articles is free, posting articles require upgraded account)
Edit Profile – Modify all fields from the registration page.
Page 7
8. ORIGINAL DETAILS SENT TO YOU BY E-MAIL:
This is the original email details I sent you.
I need a site developed similar to a jobs board that allows postings into 2 categories by all registered
site members. Some of the items below I will give more exact details on once the project is started.
SITE BASICS:
Would like this site developed in Laravel with it's basic Foundation CSS layout setup. I have my own
Cpanel dedicated server that you will develop this on. We will password protect the root domain of the
site so no one can see it while it is being developed.
IMPORTANT: I want to make this site have Internationalization for multiple languages. All static text
on every page should be able to switch languages. I know Laravel offers this ability.
GENERAL IDEA:
The site will work similar to a job site where you create a profile account visible to the public. Site
users will be able to register, update a profile, view job postings from the 2 categories, and also post
new job postings (into the 2 categories). Users can pay to upgrade their account and be auto billed on a
monthly basis.
Site Pages:
1) Homepage – homepage will show random 4 featured site members, and the 10 latest job listings
posted by site members, 5 latest blog posts
2) Login – login form
3) About Us
4) FAQ
5) Membership Price explanation and Details
6) Upcoming Events – this is filled in by me from an event database
7) Register – where people can create an account
8) Contact Us – web form
9) Advanced Search engine ----> Search Results – this searchs member profiles
10) Articles from Members (Blog) – Site members can submit blog articles. Admin approves them to
display on the site. (This can be Wordpress or similar)
11) * Profile Pages for each member - created dynamically
MERCHANT:
I will use Stripe to accept all payments.
WHAT HAPPENS WHEN A NEW POSTING IS ADDED:
When a new job posting is added to the site, the contact information for the job poster is only
immediately visible by UPGRADED (purchased membership) accounts.
Page 8
9. Free accounts can see a new job posting's contact information starting 12 hours after the posting was
made.
Urgent listings: A person posting a job has the ability to pay a flat fee amount to list their job as urgent.
Urgent listings contact information is made immediately available to everyone: Upgraded and Free.
MORE DETAILED INFORMATION: Some items are repeated from above.
I do not need a CMS backend admin for this. I can manage many of the items manually using
PHPMyAdmin or write my own PHP tools later on.
Additional CSS Styling is not necessary right now. Just use the default Foundation settings that come
with Laravel.
I will need the ability to modify the code myself in the future.
Page caching can possibly be utilized for all pages that do not change often. This is not required
though.
STATIC PAGES:
The site will have a few static pages like About Us, Contact Us, FAQ, and maybe a couple more.
REGISTRATION for Profile / Resume :
Registration process that allows people to create a Profile with a picture. Think of this page similar to a
resume or a LinkedIn profile. Will need to be able to upload files. Keyword tag options. I will give
more precise details on what fields is needed once the project has been started. Definitely will want
Person's Name, phone, email, physical address, website, picture, default language.
PROFILES / Resumes
These pages are available to the public. Would like the profiles to have SEO friendly URLS. Example:
http://www.mysite.com/u/ryan-vinson
MEMBERSHIPS
Registered site users have the option to upgrade their account. Memberships are charged on a monthly
basis. Stripe is the merchant company.
Extra fields and file uploads are available to upgraded memberships. If a membership expires, these
items need to no longer be visible on a user's public profile.
SEARCH
A search box would need to search the Profiles created. An advanced search page would be able to
search customized tag options that the user selected during their registration.
INTERNATIONALIZATON/ LANGUAGES: I intend to have the site available in English, Spanish,
French, and Chinese initially. All default pages and headings will need to be support
Page 9
10. Internationalization. User generated profiles do not need this. Static headings on those pages will
though. I understand how Laravel's Internationalization works. Once the site is built to allow
Internationalization, I will fill in the data for additional languages and their arrays myself.
I want to be able to fill in the body content for each language. For example: About Us page. I would
type in body content for English, type in body content for Spanish, etc. Each label, link, etc all need to
be Internationalization prepared.
On the frontend - INTERNATIONALIZATON:
People will be able to choose what language they want to view the site in. This is by showing country
flags at the top of the page. (ON EVERY PAGE). Starting out, base site pages will be available in
English, Spanish,French, and Chinese. Will need 4 flags at the top of the site.
Clicking a flag will set a cookie/session that shows the proper language content throughout the site.
This goes for all our base pages. About us, register, etc.
As an example, we will have the About Us page content stored in English, Spanish, French, and
Chinese. Based upon which flag they chose (cookie/session saved), the proper content will display for
the About Us page. If we choose to use caching, the page would check the cookie/session for the
correct language, and then include the static cached file for that page and language.
EVENTS CALENDAR
I want to be able to type in upcoming events. These events would be available on the site for all site
visitors.
CATEGORIES
All registered users can post listings into to 2 separarte possible sections.
**Important: These job posting's contact information is immediately available to be viewed by
UPGRADED members. Otherwise, a post's contact information become visible to free accounts 12
hours after the posting. However, see below.
** Another note: The person who posts the job listing has the option to pay $10 to make the listing
available to ALL accounts UPGRADED or FREE immediately as an Urgent listing.
Contact details of the listing to be hidden are : Person's Name, phone, email, physical address, website,
picture.
BLOG SECTION / ARTICLE POSTS
UPGRADED members can write and post articles to the blog. Comment box should be available with
all articles. Registered users can all comment. We can consider using an open source comment box
provider.
ADDITIONAL ITEM WOULD LIKE TO CONSIDER:
Page 10
11. Dynamic items Translation :
Certain items on the site are dynamic like a user's profile, a blog post, or a job post. I would like to add
a link or button underneath each dynamic item that says "Translate" similar to how Facebook does this
under certain posts.
For example - Someone posts a job posting in Spanish. The body of the posting (which is in Spanish)
would have a link underneath it that says Translate. I click that and it converts the body to English.
What ever language I have set as my "Flag" (English/Spanish/French/Chinese) is the language it would
translate a post into when you click this Translate link. If the posting is already in my set language,
there would not be a Translate link.
The word "Translate" would be a static word and in the Internationalization array.
Default language for the site will always be English.
Microsoft and Google both have Translation APIs. Glosbe also has a translation service.
Page 11