Architecture: 3-tier architecture (UI, Business logic & DB/Filesystem)
Technologies: Java (JAXTA), XML, AJAX and other suggested technologies
Project Description: Web application that allows members to link other selected members to information (a document created online or a file that they uploaded to an online database). Member will also be able to query the profiles of other members and, if the information is “public”, the viewing member will be able to link themselves or other members to the information found. In addition, member will be able to view ALL the members who are linked to a given piece of information. Members who are linked to a piece of information (e.g. file) will be able to view the content of the information from a web browser(e.g. should be able to preview an MS Office, PDF, JPEG or MPEG file without having to open the actual file).
- Online features
o Create profile
o Photo gallery
o Add members to “friend” list
o Block members
o Create groups
o Show when online
o Member can appear offline when online
- Key Features
o Link to information (e.g. MS Word document) with selected members
o Non-members can also be linked to infromation. When executed, the non-member should receive an email which instructs them to become a member to view the information.
o Member must have the ability to invite non-members to join by copying and pasting emails in an online form. Must also be able to upload Yahoo, Hotmail, GMail, AOL Mail and Outlook personal address books to invite members.
o Designate information as public (accessible by all members) or private (accessible only by selected members)
o Should be able to provide a brief description of each piece of information created.
o Member has the option to make a file “downloadable”
o A member can preview information that they are linked to when they are logged in.
o Must be able to create an online document (text only or HTML)
o Must be able to query all public information and see everyone who is linked to each piece of information
o Non-members can also view profiles of all members of the community
o To view or link to information, person must be a member
o Can send a message to a member
o Member can generate HTML code for a piece of information that they are linked to that can be embedded into external websites (e.g. [login to view URL]).
o Each profile needs to have a unique URL (e.g. [login to view URL])
o Each piece of information should have an auto-created URL (e.g. [login to view URL])
o System should verify file size and type, based on extension, at the time of upload. If size exceeds limits and/or extension type doesn’t match acceptable type, system should reject the ability use the file.
o MUST have a centralized language file so that community can be displayed in different languages in the future
- Key Feature – Alternative to Linking (direct send) using Java (JAXTA API)
o Member can send a file directly to another member (via P2P) or if the receiving member is NOT online, member can upload file to a remote server via FTP and the receiving member will be able to download the file at the time of login.
- Web application hosted on different networks
o Important: Must be able to have application setup on different servers (networks), with the ability to “cross” connect members. For Example: Application is hosted on NetworkX. Application is also hosted on NetworkY, with a different group of members. The two networks are separate. However, AT THE SYSTEM ADMINISTRATOR’S DISCRETION, Application on NetworkX can connect to application on NetworkY (vise versa) and members in each network will be able to link to information across each network. Authentication will be required for each application to connect to one another.
- Admin features
o Should be able to set maximum file size (default max. 250k)
o Should be able to set maximum character amount for document (default 1000 characters)
o Should be able to set maximum character limit for description of information
o Should be able to set file type based on extensions allowed (e.g. only allow .doc). Admin can input extensions that they want to allow OR they can opt to “accept ALL file types”
o Should be able to restrict a member’s ability to link other members to information (e.g. disable member’s ability to link others to a file – can read ONLY. Other members can link this member to information but this member)
o Admin can create different account TYPES based on various restrictions (e.g. Basic Account – can link files with maximum size of 250k)
o Admin can restrict downloads of linked files. Can restrict all downloads or allow the download of certain types of files. Note: if admin allows downloading of linked files, member will also have the ability to decide whether or not they want to make a given file “downloadable”.
1. Should separate business logic from ui and database/file system.
2. IMPORTANT: Needs to be scalable
3. Should be able to update a previously linked information and all linked members should be notified of updates
4. Admin should be able to specify the FTP server to be used for asynchronous file transfers for p2p.
5. Member should be able to use an external host for documents. (e.g. Member can link others to a file located at an external host by simply providing the link of the external host. Member should also be able to provide FTP login information for the external host so that they can update the file from the web interface.
6. IMPORTANT: Should be able to email / invite all members of the Yahoo, Gmail and Hotmail address book.
7. IMPORTANT: Must have a plug-in for MSOffice, Internet Explorer & Adobe Acrobat that, when clicked, does the following: 1. Saves the file to a default folder 2. Takes the member to the login page for the site 3. Once logged in, takes the member to the screen that lets them continue (e.g. upload file and link other members)
8. Media files (e.g. MPEG) should be viewed in a flash player. Advertisement should display while file is loading.
- Must use 3-tier architecture
- Must follow good coding practices.
- Fully comment code for easier updates and modifications
- Create databases that check for and maintain data integrity
- Must ensure flexible architecture – to avoid having to rebuild the complete system for future upgrades.
- Looking for a team who can work with us on multiple projects of this type. Seek long term relationship.