Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 2 commits ahead, 2 commits behind seanjun21:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
backend
css
img
js
.gitignore
README.md
index.html
package.json
server.js
webpack.config.js

README.md

codeUp (beta)

codeUp is a platform that provides answers to your programming and existential questions (e.g., how to fly) in a real-time, 1-on-1 environment by your peers and experts. It seamlessly integrates real-time, collaborative code editor and instant messaging with other users. Let's go learn how to fly!

To begin, register a user account or log in/authenticate with your GitHub credentials. Then ask your question, add relevant tags by topic, and see your question appear in a real-time lobby queue. Other users may then respond to your question and begin a 1-on-1 chat session to discuss and/or pair program solutions to your programming dilemma. Registration is not required, but you will be limited to only viewing posted questions as a guest user.

The backend is built on Node.js and serves the frontend "view" with event-based communication provided by Socket.io. The user interface is framed with React and Redux, dressed with collaborative-mojo freely provided by Firepad.io code editor in its open source fashion. PostgreSQL database provides bookkeeping on users, questions, topic tags, and chat messages so an expert can review chat logs to continue helping a user with their question from where another may have left off.

Screenshots

codeUp beta screenshot

Live Deployment

Live demo can be seen at: https://codeup-app.herokuapp.com

Local Setup

Steps for setting up codeUp locally.

BACKEND:

Setting up the database and backend server.

1. Install postgreSQL using homebrew:
		$ brew install postgresql

2. Install postgreSQL node-module using NPM:
		$ npm install --save pg

3. Launch postgreSQL using homebrew:
		$ brew services start postgresql

4. In project directory, create new db:
		$ createdb *INSERT_DB_NAME*

5. Connect model tables (schema.sql) db:
		$ psql -d *INSERT_DB_NAME* < *INSERT_SCHEMA.SQL_PATH*

6. Access database:
		$ psql -d *INSERT_DB_NAME*

For example, once postgreSQL is installed and launched, type:

	* `createdb chat`
	* `psql -d chat < backend/database/schema.sql`
	* `psql -d chat`
	* `insert into users (user_name) values ('Alex');`
	* `insert into questions (user_id, question_text, when_asked, is_answered) values (1, 'this is the questions text', '1999-01-08 04:05:06', false);`

Queries for accessing the SQL database directly.

Query examples:
	CREATE:
		$ insert into *INSERT_TABLE* (*INSERT_COLUMN_1*, *INSERT_COLUMN_2*) values ('*INSERT_VALUE_1*', '*INSERT_VALUE_2*');
		'1999-01-08 04:05:06' (format timestamp like this)
	READ:
		$ select * from *INSERT_TABLE*;
		$ select *INSERT_VALUE from *INSERT_TABLE*;
		$ select *INSERT_COLUMN_1*, *INSERT_COLUMN_2* from *INSERT_TABLE* where *INSERT_COLUMN_1*='*INSERT_VALUE_1*';
	UPDATE:
		$ update *INSERT_TABLE* set *INSERT_COLUMN_1*='*INSERT_VALUE_1*' where *INSERT_VALUE_2*='*INSERT_COLUMN_2*';
	DELETE:
		$ delete from *INSERT_TABLE* where *INSERT_COLUMN_1*='*INSERT_VALUE_1*';

Authors

Also see the list of contributors for their specific commits to this project.

Tech: