Open Source Trello Clone
- Fork this repository
- Take a ticket from the trello board
- Cut a topic branch
- Finish the ticket
- Submit a pull request
You'll need to
register this app
as an Oauth application on Github.
Application name
Trossello (development)
Homepage URL
http://localhost:3000/
Application description
Open Source Trello Clone made by LearnersGuild (development)
Authorization callback URL
http://localhost:3000/oauth_callback
Copy the client id and client secret and use them below:
Create a .env file in the root of the cloned repo that looks like this:
GITHUB_CLIENT_ID=GET_THIS_VALUE_FROM_GITHUB
GITHUB_CLIENT_SECRET=GET_THIS_VALUE_FROM_GITHUB
SESSION_KEY=MAKEUP_A_REALLY_LONG_STRING_HERE
Go to Github and fork the project to your repo, then clone the fork. Then run the following:
$ git remote add upstream https://github.com/GuildCrafts/Trossello.git
brew install postgresql
brew tap homebrew/services
brew services start postgresqlTest to see if you have this setup
echo $PATH | grep './node_modules/.bin'If the grep command above yields zero search results, do this:
# Add this line to your ~/.zshrc (zsh) or ~/.bash_profile (bash)
export PATH="./node_modules/.bin:$PATH"createdb trossello-test
createdb trossello-development
knex migrate:latestAt this point, you should be able to run 'npm start' without errors.
Ensure npm start is running before you run npm test to run the mocha tests
# clone Trossello
# checkout your clone
# add github.com/GuildCrafts/trossello as a remote called `upstream`
git remote add upstream git@github.com:GuildCrafts/Trossello.gitgit fetch upstream
git checkout -b my-topic-branch upstream/master
git push -fu origin HEADRebase your branch off of the latest upstream/master before submitting your pull request
git commit ... // commit all your changes
git fetch upstream
git rebase upstream/master
// resolve any conflicts
npm install
npm test
git push -f origin HEAD- Node
- Express
- Webpack
- Babel es2016
- SQL via Knex
- React
- SASS
We're using knex to generate our SQL
| action | CRUD | verb | path |
|---|---|---|---|
| getBoardsByUserId() | index | get | /api/boards |
| createBoard() | create | post | /api/boards |
| getBoardById() | show | get | /api/boards/:boardId |
| updateBoard() | update | post | /api/boards/:boardId |
| deleteBoard() | delete | post | /api/boards/:boardId/delete |
| createList() | create | post | /api/boards/:boardId/lists |
| createCard() | create | post | /api/boards/:boardId/lists/:listId/cards |
| updateList() | update | post | /api/lists/:listId |
| deleteList() | delete | post | /api/lists/:listId/delete |
| updateCard() | update | post | /api/cards/:cardId |
| deleteCard() | delete | post | /api/cards/:cardId/delete |
-
Each new Component should be created in its own file where possible.
-
Large Component files should be split up into new subcomponent files.
-
A Component with multiple subcomponents should be reorganized into a Component directory:
-
The Component sharing the folder name should be renamed to index.js and have an accompanying index.sass file.
-
Everything inside the Component directory should only be rendered as a subcomponent of the index Component.
-
Components with many subcomponents of the same type (ex: menu panes) can have a directory for organizing those Components, which should be named in lower case.
-
-
Component file and directory names should be in UpperCamelCase.
-
Class names for Components inside of a Component directory should start with the Component directory name. (ex: BoardShowPage/CardModal/LabelMenu -> .BoardShowPage-CardModal-LabelMenu)
-
Each Component can optionally import ONE sass file of the same name. You should never import other Components' sass files.
-
Each Component sass file should only declare css selectors with that Component's name as a prefix.
