GithubHelp home page GithubHelp logo

todokku / wemeetup Goto Github PK

View Code? Open in Web Editor NEW

This project forked from steve530/wemeetup

0.0 0.0 0.0 20.41 MB

Wemeetup is developed with a Ruby on Rails backend, a PostgreSQL database and is hosted on Heroku. The backend provides RESTful API's and responds with JSON data. The front end is modeled with React and Redux and implements styling from CSS.

Home Page: https://myhobbits.herokuapp.com/

Ruby 41.78% JavaScript 36.13% CoffeeScript 1.23% CSS 14.97% HTML 5.90%

wemeetup's Introduction

Wemeetup

Wemeetup is a web-app clone of http://www.meetup.com, a platform for users to discover, join, and create groups based on specific interests and hobbies.

Link to my site!

Technologies Used

Wemeetup is developed with a Ruby on Rails backend, a PostgreSQL database and is hosted on Heroku. The backend provides RESTful API's and responds with JSON data. The front end is modeled with React and Redux and implements styling from CSS.

In addition, this website employed Jbuilder, NodeJs, JQuery to make AJAX requests, Node Package Manager (npm), webpack, React DOM, React Router, React History for browser history manipulation.

Features

Users can create an account and log in securely (with bcrypt) with custom error handling. Once logged in, the user will be able to create groups and edit group. If a user is trying to create a group without logging in,the page will be redirected to the log in page.

Code Snippets

Utilization of protected and authenticated routes with React Router. This allows the developer to dictate user access depending on their login state.

const App = () => (
  <div>
    <header>  
      <Link to="/" className="header-link">
        <h1 id='top_welcome'> </h1>
      </Link>
      <GreetingContainer /> 
    </header>
    <Switch>
      <AuthRoute exact path="/login" component={LogInFormContainer} />
      <AuthRoute exact path="/signup" component={SignUpFormContainer} />
      <ProtectedRoute exact path="/newgroup" component={CreateGroupContainer} />
      <ProtectedRoute path="/groups/:groupId/manage" component={EditGroupFormContainer} />
      <Route exact path="/groups/:groupId" component={GroupShowContainer} />
      <AuthRoute exact path="/groups" component={GroupIndexContainer} />
      <Route exact path="/" component={Splash} />
      <Redirect to='/'/>
    </Switch>
  </div>
);

Below displays how the developer can redirect users based on where they are on the webpage with the Redux history property. In this example, the user is redirected to the group show page upon submission of a newly created group, thus allowing the user to see the new group they have created.

handleSubmit(e) {
    e.preventDefault();
        if (this.state.group_name.length >=31) alert('Group name less than 30 chars pls :)')
        else {const group = Object.assign({}, this.state);
          this.props.createGroup(group).then( (group) => this.props.history.push(`groups/${group.id}`)
    )}
  };

Installation on UNIX

  1. Follow the guide here to set up your ruby environment and install gem and bundler.
  2. Clone the repository. git clone https://github.com/Steve530/Wemeetup.git
  3. Run npm install to install the dependencies for the app.
  4. Run npm start to start webpack and create the bundle.js file.

wemeetup's People

Contributors

steve530 avatar dependabot[bot] avatar

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.