AppStarter is a clone of Kickstarter, a crowdfunding website where users can create projects and support projects that they like. AppStarter utilizes a React\Redux frontend, Ruby on Rails backend, and a PostgreSQL database. The app uses JS ES6, BCrypt for password salting and hashing, and Webpack for bundling.
Built with ...
- User can create projects
- Most popular projects based on number of Likes
- Backings/Rewards
- Secure frontend to backend user authentication using BCrypt.
- Users can like projects
- Search
- Explore by categories
On project show page, users can view details for a project. If users like the project they can like and back the project for a reward. Project show page provides detailed information about the project, video from project creator, current information on total amount of money project has raised, number of backers
as you can see in the code snipper below projects has many relations with other components of AppStarter. Model level validations as well database level validations. All foreign keys in the database are indexed to increase performance.
class Project < ApplicationRecord
validates :title, :short_description, :full_description, :funding_goal,
:funding_end_date, :user_id, presence: true
belongs_to :user
has_many :project_categories
has_many :categories
has_many :backings
has_many :rewards
has_many :likes
has_many :likers
def self.search_project(query)
query = "%" + query.to_s.downcase + "%"
search_result = Project.where('
lower(title) LIKE ? or lower(short_description) LIKE ?', query, query)
end
#...
end
Users can explore projects by categories, each project will display some information. Users can like the project or can click on project and find more information on project show page
On the main page of AppStarter users can view most popular projects based on number of likes.
...