PLEASE CAREFULLY REVIEW ALL FILES IN THE ATTACHED ZIP FILE BEFORE BIDDING. MORE DETAILS ARE AVAILABLE IN THOSE FILES.
Note: This is a "featured project" so you will not have to pay GAF a commission out of your collected fee.
I have done my best to completely outline this project and its requirements below. This is a fairly long document, so please read it completely and carefully BEFORE making a bid. I am an experienced developer and am able to converse intelligently on these topics. I think you will find me easy to work with and clear in my directions and expectations.
My primary reasoning for wanting these “web 2.0” (I hate that term, but I guess it has become descriptive) core items is that I have developed from scratch for about 15 years but have never tried out these new frameworks, which allegedly dramatically reduce development time and improve functionality. This project is designed to get me introduced into these new methods of “modern coding.” For this reason, this project really is two-fold: 1. Developing a functional and elegant interface for this database, and 2. Forcing me into the world of “frameworks.”
That said I require clean, high quality, well-organized code. I am not interested in someone who is only able to do this project because they figured out how to get the framework to do all the work for them. I want someone with experience in PHP and web application design to do it “correctly” so that I can learn by reading the code. Please realize that as I read over your work I am likely to ask questions about what a specific line of code does, though I promise to do my own research too and not bug you incessantly.
I am looking for a developer with in-depth knowledge of PHP and user interface design. I am receptive to suggestions and alternative approaches. If some critical function seems to be missing, I appreciate a developer who points it out and works to make the best overall product possible. I do anticipate that this project may become more involved in the future after the initial launch. The initial project is described below, but the ideal programmer will be available on an ongoing basis (obviously paid for future work) to add new functionality as needed.
How to win this project:
2. I generally prefer developers with a proven track record. I like gold members with lots of positive reviews. I also understand that everyone has to start somewhere and maybe you have been developing this sort of thing for years and are simply new to GetAFreelancer. If that is the case, show me examples…give me demo access to some similar projects you have developed. Show off…this is not the time to be bashful.
3. English skills. I am not at all opposed to developers from around the world…but quality English skills are a necessity. I have had situations before where my project was put in jeopardy simply because I was unable to explain a concept in a manner that the developer understood. Had they spoken English as their primary language, everything would have been perfect. You can show off your English skills when you tell me about your selection of framework to work with.
4. Demonstrate that you have actually READ this project thoroughly BEFORE placing your bid. Placeholder bids and those that are clearly unrelated to the project will be discarded immediately. Don’t just say “dear sir…we have many year experience so pick us.” (actual bid from a previous project)
All “pages” and CSS of this project must validate on the W3C validator and also should display properly on both Mac and Windows versions of all major current web browsers. The template you are being provided with has already been tested to meet these criteria. You will be given access to FTP to a test web server. You will not have direct access to the MySQL database but can access it through your web scripts. You may install PhpMyAdmin or something similar if you want, but please remove it after project completion. I will hold the exclusive rights to the application and all code within it. You may retain a copy for yourself and can modify it for use on future projects with other clients if you find it useful. This project cannot be displayed on any online portfolios by name, but may be referenced without names, and with logos changed (logos have already been obfuscated in the uploaded project files). You will not have any publicly displayed recognition of your work anywhere on the interface. Please be sure to ask any questions on the private message board BEFORE placing a bid. NO PLACEHOLDER BIDS. DO NOT ATTEMPT TO CONTACT ME OUTSIDE OF THIS WEBSITE (GAF) INTERFACE. PAYMENT WILL BE ARRANGED THROUGH GAF ESCROW AND WILL NOT BE RELEASED UNTIL PROJECT HAS BEEN COMPLETED AND TESTED. I am accessibly by email throughout much of the day and evening (USA central timezone) and generally am available within an hour or so for quick answers. As with all projects I post on GAF, I am always looking for long-term relationships with reliable developers. I maintain a steady workload and like to have several developers who I know I can trust to do good work when needed. You will notice from my ratings that I regularly work with the same developers time after time.
The website will be hosted with [url removed, login to view] on a shared Linux server. There is no truly sensitive data, so no SSL certificate will be used. It is your responsibility to research that your scripts and preferred framework(s) will work on the 1and1 shared Linux server platform. You will need to install and configure whatever framework you decide to use, along with the scripts you create for this project. The server runs PHP 4 by default, but can use PHP 5 with the inclusion of a directive in a [url removed, login to view] file. The database will be a single MySQL database version 5.0. Configuration info of this server can be seen here: [url removed, login to view] and some general info is available here: [url removed, login to view] You will NOT be given access to my administrative interface of 1and1.
DEFAULT (STUDENT) USERS
There are two main areas of access. One is “public” for registered users. A normal user (student) has the ability to edit and manage his own profile, but nothing else.
A new (student) user will be able to create a new account (email address + a password). These accounts can only be created when the email address is authenticated (send challenge link via email) and all valid email addresses must end in an authorized domain name to prevent registrations from outside the organization (a list of approved domain names for email address will be provided to the winning bidder).
Once a user is logged in, they can insert their personal data. They can log in at any time to view/edit their profile data including changing their password.
All account passwords should be stored encrypted (MD5) in the database. If a user forgets his password, he can request a new one be sent to his email address on file. This new password can be changed when he logs in with it. User login may be with either one of the email addresses or the username (by default the username is the registration email address, but the user can create a new unique username once the account is created).
Admin accounts are kept in a separate table from the student users. Only an admin can create a new admin account (nobody can make their own). All account passwords should be stored encrypted (MD5) in the database. If an admin user forgets his password, he can request a new one be sent to his email address on file. This new password can be changed when he logs in with it.
Once logged in, the admin will have several options available. They can manage user data and also inventory. Each “heading” below corresponds to a “tab” on the supplied sample layout template.
OVERVIEW (admin tab)
This page will contain a search box where we can search for a student by name (auto-suggest names while typing) and will also contain some basic statistical info such as:
Current Active Members (count)
Current Users in System (count)
INVENTORY (admin tab)
Inventory items are kept in three separate categories: instruments, uniforms, other equipment
In each of these interfaces, the admin can manage (add, edit, or delete) items (to delete requires deletion confirmation, not just 1-click). For instruments and uniforms, the admin can mark an item as “in” or “out” by “checking it out” to a student in the database. The name/date log will be kept indefinitely. They can generate a number of different “reports” on the inventory data, including:
1. Instruments “out” list
2. Instruments “in” list
3. All Instruments List
4. Uniform “out” list
5. Uniform “in” list
6. All Uniforms List
7. All Other Equipment List
Each of the above reports will be displayed in a table on-screen. These should be sortable by each major column header. Clicking on a specific item (instrument, uniform, etc) or the “info” button will bring up a page with the detailed specs on that item. This will allow the admin to view the complete checkout history and to view/edit repair history, serial number, type, notes, and image. Each report should also have a button to click to “Export as CSV” allowing the data to be exported into Excel for further use.
STUDENTS (admin tab)
The other main section for the admin is to view lists of the student data.
In this interface, the admin can manage (add/edit/view/delete) student data. They can generate a number of different “reports” on the student account data, including:
1. Names + addresses + phone(s)
2. Names + Instruments
3. Names + Uniform Sizes
4. Names + Graduation year
5. Names + Entrance year
6. Names + Home state
7. Names + Medical form status
8. Complete Active Student List (view only: names + functions, CSV contains all data)
Each of the above reports will be displayed in a table on-screen (the included HTML sample is of #8). These should be sortable by each major column header. Clicking on a specific student (or the “info” button) will bring up a page with the detailed info on that student. The admin can view and edit the student info. Each report should also have a button to click to “Export as CSV” allowing the data to be exported into Excel for further use.
For report #7 above, if the medical form status is “incomplete” a link should be provided to print a copy to be signed (pre-filled with student data). Another link should be provided to allow the admin to upload a scanned (PDF) of the signed form. If the form is “on file” then the link should be to view the PDF scanned version of it (and the option to delete the form on file).
ADMIN (admin tab)
Manage Admin Users (create new admins, delete old admins)
Change My Password
Manage My Profile (view/edit admin user profile)
Import from Initial Contact Form (create new users by copying selected records from temp table in database, delete others)