For an accomplished Django developer with front-end experiance

Cancelled Posted Apr 22, 2012 Paid on delivery
Cancelled

Hello everyone!

I am a graduate student in computer science at the University of Michigan. I am part of a small, enthusiastic group here, and we have started working on a fairly large scale web application for use by students, professors and advisors at the university. I am the tech lead on the project, and in the interest of saving time, I would like to leverage the expertise and experience of a partner here.

To start things off, I am posting a small part of the project today. The main purpose of this posting is to identify a talented and experienced partner (individual or team). Upon a successful completion of this project, there will be immediate availability of more work. As I would be directly working with you on the overall project, code quality, maintainability and elegance are of utmost priority to me. In return, I will try my best to make sure you have a pleasant work experience and are compensated fairly.

What I am looking for:

I am looking for an accomplished Django web developer with front-end experience or part of a team with front-end development (HTML, CSS, JavaScript). The expected end-product is a well-written Django backend with a fully functional set of templates based on wireframes. The templates should be presentable, but I don't expect you to be a pixel-perfect designer. We will likely have a graphic designer that can refine the UI.

If you are interested in working on the project, please read further.

## Deliverables

We will be working with Django 1.4. We would like the project to be self contained, with as few external dependencies as possible. When there are dependencies, we prefer to include the source in the project itself. For example, if you are using apps from Pinax, the project should include the source of the app itself rather than depending on Pinax. We love open source, and you should feel free to leverage existing, proven projects. But to prevent code bloat, we want to use only the bits that we need. In production, the app will run on Amazon EC2, and we will use S3 to store media.

What you can expect from me:

I am invested in the success of this project. I will try to provide quick and useful feedback. You will be an important partner in this project, and I will be treating you with respect. This includes how you are compensated. I love writing Python, and I look forward to working with you.

Project description

As described above, this is a small part of a fairly large Django web application project for students and professors (which we will call portal7).

As part of portal7, students are able to post any number of portfolio entries. A portfolio is a description of some project a student has done, and is represented on a single web page. It consists of a well-formatted text entry, which potentially includes pictures or embedded video within that entry. This description will look at the design of this portfolio page.

Scaffolding

First, we will need a notion of members. For the purpose of your work in this posting, please use the default Django user authentication system, and create a few dummy users (and put them in a fixture). We are working on a more elaborate, but compatible user accounts system that will replace it. When the app loads, have it start with a simple login page.

Once a member logs in, they should be presented with a list portfolios, which they can click to view. As shown in the first mock, this has two portions. At the top will be the portfolio entries that belong to the current user. In addition to viewing profiles, they can do:

- add a new portfolio entry by clicking an "add portfolio" link

- edit a draft portfolio entry they own

- edit a published portfolio entry they own

Below a horizontal line, there should be a global list of portfolios. This is for demo and testing convenience only. It should simply list all portfolios in the system newest first in an infinite scroll page (that loads only when scrolled).

A member can have multiple portfolio entries. A portfolio entry on this page should include the title, the start-finish date range if it exists, and its short description (the fields are discussed below).

Any user-facing text you add to pages should be ready for internationalization (i18n) with gettext_lazy.

Portfolio

You can think of a portfolio entry as a polished blog entry. Adding a portfolio is similar to adding a blog post with a few additional fields.

- Title

- Start-date, finish date (optional)

- Short description (this can be provided by the user, or automatically generated from the entry itself by taking the fist 3 sentences. )

- Category: to be filled from a pre-defined set of categories. Initialize it with (Biology, Chemistry, Physics, Math, Art).

- Tags: free form description added by the poster

- Portfolio entry: a rich text entry with potentially embedded pictures (to be uploaded from the members computer) or video (support YouTube and Vimeo video embedding)

A portfolio should look nice.

Editing portfolio entries

The first part you will work on is a minimalist WYIWYG editor for adding a portfolio, which will be linked from the 'add a portfolio entry' link. Portal7 will have a default set of fonts, so users do not need font selection. I was looking around, and a good example I found is Facebook's edit note page (<[url removed, login to view]>) What we are looking for is something close to that with a few changes and the additional fields we talked about above. To summarize, the text area for the entry should support simple text formatting (bold, italics, underline), adding subtitles (which will be bigger than normal text, but smaller than the title), lists (numbered, unnumbered), and simple layout options for pictures and embedded videos. The short description should also be a smaller text area. Members should be able to preview, publish, save draft or discard portfolios. If the member didn't provide a short description, an automatic one should be generated upon preview.

Presenting portfolio entries

The second part you will work on is a display page for portfolios. When a member publishes a portfolio, it posts to the page where it will live. This page will have two main components. The portfolio entry, and the comments on it.

The presentation of a portfolio entry is provided in the second mock below. There is a sidebar that is dedicated to meta information, statistics about the portfolio and sharing on social media. You do not need to code the functionality behind sharing for now, but you should pull in information such as the portfolio entry owner, number of likes, number of comments.

Right below the portfolio page, there is an "admire" button which members can click when they view someone's portfolio. This action should be emphasized. To see an example, you can look at this portfolio entry on Behance: <[url removed, login to view]>

The second part of the portfolio page is the comments. You should work on the comments part in a generic fashion so that you can later use it in other parts of the project. Comments on portal7 should resemble to how stackoverflow does answers ( Basically, you can have answers, and you can have replies to answers?.like <[url removed, login to view]>) In a similar manner, we have comments on portfolio items, and we can have replies on them, but no comment nesting. (replies should be represented as separate entities altogether in the backend). You should be able to post comments and replies without leaving the page with javascript, and you shouldn't load the comments section in an iframe.

Comments have a small sidebar to their left to do "like"-ing. In addition, comments are by default listed in reverse chronological order. However, the owner of a portfolio entry can rearrange comments by "pinning at the top" the ones they want to promote. Since multiple comments could be pinned at the top, there is inherent ordering among comments that have been promoted to the top as well. The small comment sidebar should have a button to "promote comment to top".

Recap:

To recap the flow of interaction:

A user logs in from a simple page.

User lands to the global list of portfolios, as well as a list of the member's published and draft portfolios (separate the global list from the members stuff with a simple horizontal line).

A user can view a portfolio, comment on it, like it, reply to comments

A user can create a good looking portfolio

URLs:

List of portfolios: [root_domain]/home

Portfolio page: [root_domain]/user/portfolio/id (HTML title should include the Title of post, and you may replace the id with a unique slug)

Portfolio edit: [root_domain]/portfolio/add

Technology:

We will use Postgres for a database. We will push media (in this case pictures) to S3. jQueery for JavaScript. Feel free to use any open and mature technology that you find appropriate for a modern Django application.

That is it. Thank you for reading. If you are interested, please let me know. I will be reading responses carefully, so please write me something that lets me know that it is not an automated/almost automated response. I look forward to working with you.

MySQL PHP Software Architecture Software Testing Web Hosting Website Management Website Testing

Project ID: #2734429

About the project

Remote project Active May 14, 2012