Giter Site home page Giter Site logo

the-factory's Introduction

the FACtory ๐Ÿ’ก

Share your ideas and find devs in the FACtory

Why?

User Story

Abdullah is such a creative guy but sometimes his mind goes blank and he is stressing out because in 2 weeks from now we will all be pitching for ideas.

Bart, as a qualified programmer, is looking for some projects where he could implement his skills. And Constantina, a business woman is looking for developers and idea that will make her rich.

Let's join all of them! The FACtory is a platform that will help you get ideas for projects and connect you with developers to implement your super cool idea. After this, Abdullah, Bart and Constantina will be much happier.

As a user I can:

  • Visit the website and see a landing page with two buttons (Have an idea and got skills)

  • Click on "got an idea?" which will direct me to the submit idea page, where I can fill in a form to submit my idea.

    • Enter information into a simple form to explain the idea
    • Be able to comment on the idea
  • Click on "got skills?" where I can see a list of submitted app ideas.

    • See a small amount of information about the ideas
    • See the most recently posted ideas at the top of the page
    • See more detail for the ideas when clicking
  • Specify if interested in working on an idea through commenting

  • Upvote an idea using lightbuld icon.

  • Stretch: Filter ideas based on requirements (e.g Front-end, Back-end, UX, etc)

What

A platform that connects people who have app ideas with people with skills to build it.

Database Schema

Users

Column Types Modifiers
id serial PRIMARY KEY
name VARCHAR(100) NOT NULL
email VARCHAR(100) NOT NULL UNIQUE

Ideas

Column Types Modifiers
id serial PRIMARY KEY
userid REFERENCES users(id)
dateadded TIMESTAMP NOT NULL UNIQUE
ideatitle VARCHAR(100) NOT NULL
ideadesc TEXT NOT NULL

Learning outcomes

  1. Parties on Thursdays are not a good idea

  1. Rebeca will become a singer soon

  2. Promises are cool!

the-factory's People

Contributors

maxgerber avatar rebecacalvoquintero avatar jen-harris avatar

Stargazers

Rachael Robinson avatar

Watchers

James Cloos avatar Jen Spencer avatar

the-factory's Issues

Get ideas page

-Set up a get ideas page -->

Person that has an idea go to the ideas main page, the input fields will be:

-Your name
-Your email
-Your idea
-Description
-Submit button

Helpers folder

Helpers, should usually go in their own folder within the views folder?

Views/helpers/capitalize.js ?

Tests can't work on validator.js [resolved, just refactoring]

When I run the tests, the throw new error disrupts the tape tests.

Good news is that I have fixed this now so you can relax : )

Will be pushing up the branch soon, with PR which can hopefully be merged tomorrow so we can showcase the tests that we have done in our presentation.

Basically I refactored the validator tests so they take a callback which can handle the error, this made the tape tests work again, and just had to include an anonymous function in the validator test function invocations inside the promise, so catch can deal with it. Example shown below:

validator.checkIdeaTitle(data, (err, res) => {
if (err.message) throw new Error(err.message);
});

Note: This has not broken the promises and everything is working fine : )

File structure

  1. Public:
    a) css
    b) public.js
    c) favicon
    d) assets

2.src
a) Model
a.1) Queries
a.1.1. Get data
a.1.2. Post data
a.1.3. Upvote data
a.2. Db_build_Sql
a.3. Db_build.js
a.4. Db_connection.js
b. Controllers
c. Layouts
d. Partials
e. Tests
F. GITIGNORE
g.config.env

Dependencies install

-Tap-spec
-Nodemon

  • Istanbul
    -Eslint
    -express
    -body-parser
    -tap-diff
    -tape
  • express-handlebars

Two test folder

Get rid of empty test folder. Rest of the tests are looking good!

Endpoint /browse

Lots of ideas that you can click and that will redirect you to the idea hbs -->/browse/:idea -->
and that idea page will have all the information (Description, comment....)

Database schema

User table:
- Id
- Name
- Surname
-Email
Ideas Table
- Id
- user id references to ....
- Idea title
-Idea description
- skills set
Comments table
-Id
- Comment
-Name optional

No start script in package.json

Pretty standard to have this script, is also what a lot of hosting environments use to build your project - I noticed the heroku link isn't working, this could be why.

relates #49

invalid charecters

when i typed a comma, or an explanation mark in the description it said that they were invalid comments .

large number of branches

There's lots of commits, which is fantastic. Perhaps you could close the merged branches to make your codebase easier to navigate?

checking inputs?

๐Ÿ‘
I like how new ideas get put up straight away and without bugs - however, I wonder if you need more in the way of input checking to guard against XSS injection attacks in your text entry boxes.

Server -side validator

  1. SUbmit the idea
  2. post the idea request
  3. The idea goes to the body parser middleware
  4. Creates a promise called validator
  5. In the validator, the form-object will be validated to check all the fields are 'valid' or 'coherent'
  6. If there is an error -> error page.
  7. If valid, this will go to the database by a post idea function.

landing page

create simple landing page with lightbulbs and buttons

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.