Giter Club home page Giter Club logo

youhighfiveme's Introduction

YouHighFiveMe

Welcome to the new open source project!

YouHighFiveMe is a web application which allows people to create their profile and let other people give them credit, or high fives, for their events such as community help, conference talks or any other type of activity they do.

Over time, user's will get their asset page generated with lot's of references from people. This can be viewed as less formal referral list than on curriculum vitae, but it can be added as a personal asset.

#Staging environment

The staging environment is located at http://test.youhighfive.me and builds are created whenever new changes are merged.

#Installation

Fork the project into your Github account and then clone it into your development environment.

$ git clone [email protected]:YOUR_GIT_ACCOUNT_NAME/youhighfiveme.git

Now go to your newly created directory.

Copy the distribution file for the parameters to your local file:

$ cp app/config/parameters.yml-dist app/config/parameters.yml

Modify the parameters.yml to reflect your database connections and smtp settings.

Prepare cache and logs folder permissions by running (double check your apache user on the first one):

$ sudo chmod -Rf +a "daemon allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs
$ sudo chmod -Rf +a "`whoami` allow delete,write,append,file_inherit,directory_inherit" app/cache app/logs

If you don't have Composer yet, download it following the instructions on http://getcomposer.org/ or just run the following command:

$ curl -s https://getcomposer.org/installer | php

Then, use the install command to install all dependancies:

$ php composer.phar install

After all dependancies are installed, make sure your app/cache and app/logs folder have write access. If there is no write access, the web server might output an internal error.

Connect to your database and run these commands:

CREATE USER 'youhighfiveme'@'localhost' IDENTIFIED BY 'secret';
GRANT ALL PRIVILEGES ON *.* TO 'youhighfiveme'@'localhost';

then run the following commands:

$ app/console doctrine:database:create

#Database migrations

This app comes bundled with Doctrine Migrations bundle, which simplifies the process of keeping database structure in sync with multiple developers and production environment.

Migrations bundle checks the structure of your entities and does it's magic based on that information.

After you have created the database as stated in previous section, you need to create schema into the database. Since we are using Doctrine migrations, we use the console tool to create the schema.

$ app/console doctrine:migrations:migrate

New migration scripts appear when you pull new code from Github. To see if there are any new migrations available, you need to check the status.

$ app/console doctrine:migrations:status

If you see new migrations available, all you have to do is run the migrations.

$ app/console doctrine:migrations:migrate

You should now have your database in an updated state with up-to-date structure that corresponds with application's entity classes.

#Initializing database

If you wish to erase data in the database and create a new fresh instance of database with dummy data and three users, run the fixtures command:

$ app/console doctrine:fixtures:load

NOTE: This will erase all data and create new dummy data. However, this process will not recreate the structure of the database. If you wish to update schema before you run fixtures, always run the Doctrine migrations tool.

Loading fixtures as described earlier, three user account are created: dev1, dev2 and dev3. Passwords for these users are the same as the usernames respectively.

#Architecture

Application has a DemoBundle, which is a first revision of suggestion for the application's architecture. Please review this bundle and state your opinion on our IRC channel (channel information below).

#Testing

We strongly encourage you to practice test driven development and write those unit tests for the code you make. As we have multiple developers involved, it is crucial that we make sure the application code is working.

To run a test, go to your project's folder and run following command:

$ phpunit -c app src/Portal

#IRC

You can catch us on IRC as this is the channel where most of the talk about development and other things related to YouHighFiveMe reside at.

Channel: #youhighfive.me @ irc.freenode.net

#Contributing

Anyone is free to join the team and develop YouHighFiveMe. Before you do so, please read the Wiki as it includes a lot of useful information about the project. Also, come and introduce yourself to us on IRC and let us know what issue from the Github's issue list you are willing to work on.

Enjoy and welcome to the project!

youhighfiveme's People

Contributors

janimatti avatar janimattiellonen avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

youhighfiveme's Issues

Remove gravatar email from user registration

User registration should not have gravatar email input even though it is not required, but it can be confused with regular email address.

Move the gravatar email input to user profile page.

Suggestion to register a gravatar email when creating a new event

When user tries to create new event and no gravatar email is given in the user's profile, the form should state this with a "notice" div: We noticed you haven't set a gravatar profile yet. You can do so in your profile page

Also add a "Don't know what Gravatar is?" link below above message that opens a new window with gravatar.com location.

Add Gravatar email to user entity

Add gravatar url to user entity and use that to generate user icons on listings.

Registration SHOULD NOT include this as this is not mandatory information, but user should be able to fill this information on user profile page.

Add translations for every text on the project

Some of the pages' content is written statically in English. We need translation feature to be implemented to serve two purposes:

  1. Easier text management
  2. Future plans to make the site multi-lingual

Send a high five for an event

User should be able to send a high five from an event view page. Only one high five is allowed per user per event.

Only logged in users can send high fives to an event.

Add a flash message when high five is sent

After saving high five, add a flash message to the session and redirect back to the event page (which causes the new highfive to be shown), and display flash messages on the project page.

Create new event

User should be able to create new event. An event can be anything from a conference, a professional talk, a tutorial, an accomplishment of some sort, anything!

Fields:

Title*
Description*
Tags*
Make public (checkbox, checked by default)

  • means the field is required

Front page should show latest events and latest high fives

When user logs in into the portal, he/she should see

  1. Latest events by other people (max 10 newest) along with stats (created by, created date, amount of high fives)
  2. Latest high fives for the logged in user (max 10 newest) with stats (created by, sent time, link to event if applicable)

Assets page

Create an asset page which simulates look and feel of an official CV, where all created Events are listed along with all the high five comments.

This page should look more or less like github cv.

Clone instructions on readme..

...encourage contributors to clone the master project repo, not their own fork. I would think you'd rather they cloned their own fork of the project?

View event

When user click on the event from the front page, open a page with event summary, owner, etc and statistics about high fives, and corresponding comments.

User profile page

User should, after login, go to profile page and see the following:

  • Account information with a possibility to modify real name and email address
  • Events created by the user (modify and unpublish actions for existing ones)
  • Casual High Fives from other users
  • Event High Fives from other users

Unit tests

Fix broken unit tests (due to class renaming/refactoring) and generate more.

Implement a Service Layer

Instead of putting a lot of code into controllers, use a service layer that contains the business logic. Controllers should delegate the task to a service instead.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.