Code Monkey home page Code Monkey logo

codexlab's Introduction

Project Code X Lab

Members: Joan Chirinos (PM), Anton Danylenko, Maryann Foley, and Susan Lin


Overview

This website provides a quick and easy way for those who are new to coding to work on projects and collaborate with their peers. Since everything is run in the browser, there is no need to install extra apps and detract from the main goal of writing the code itself.

The live code editor (via ajax) provides syntax highlighting and the overall functionality of the site provides a meaningful path towards productivity.

Our project implements Google OAuth as well. In addition, as a stretch goal, we hope to send emails to users regarding project notifications and invitations etc.

A database includes tables for files, projects, permissions, and users.


Demo

Watch our video demo here


How to Run

Install and run on localhost

  1. Navigate to desired directory and clone the CodeXLab repo
  2. Install python3 pip by running $ apt-get install python3-pip
  3. Install virtualenv by running $ pip3 install virtualenv
  4. Make a virtual environment by running $ virtualenv <path/to/customVenvName>
  5. Open your virtual environment by running `$ flask <path/to/customVenvName>/bin/activate'
  6. Install flask by runnning $ pip3 install Flask
  7. Run the app by running $ python3 __init__.py

Install and run on Apache2

NOTE: You may have to format most commands with $ sudo <command>

  1. Set up an Ubuntu droplet
  2. Run $ sudo apt install apache2, followed by $ sudo ufw allow in "Apache Full"
  3. Run $ sudo apt-get install libapache2-mod-wsgi-py3
  4. Clone repo into /var/www/CodeXLab/, creating directories if needed. Your directory structure should now be similar to the following
  5. Run $ sudo apt-get install python3-pip
  6. Run $ sudo apt install python3-flask
  7. Write the following into /etc/apache2/sites-available/CodeXLab.conf, replacing the IP address
<VirtualHost *:80>
                ServerName <your.ip.address.here>
                WSGIScriptAlias / /var/www/CodeXLab/codexlab.wsgi
                <Directory /var/www/CodeXLab/CodeXLab/>
                        Order allow,deny
                        Allow from all
                </Directory>
                Alias /static /var/www/CodeXLab/CodeXLab/static
                <Directory /var/www/CodeXLab/CodeXLab/static/>
                        Order allow,deny
                        Allow from all
                </Directory>
                ErrorLog ${APACHE_LOG_DIR}/error.log
                LogLevel warn
                CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
  1. Run $ sudo a2ensite CodeXLab
  2. Write the following into /var/www/CodeXLab/codexlab.wsgi
#!/usr/bin/python3
import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0, '/var/www/BigToe/')
sys.path.insert(1, '/var/www/BigToe/BigToe')

from BigToe import app as application
application.secret_key = 'Add your secret key'
  1. Navigate to /var/www/BigToe/BigToe/
  2. Run $ chmod -R 755 data/
  3. Run $ python3 util/db.py. Your directory structure should now be similar to
  4. Run $ chmod -R 755 data/
  5. Run $ sudo systemctl reload apache2

OAuth

  • To be implemented

Dependencies

Python 3

We are using Python 3 as our primary language to facilitate scripting and to utilize the dependencies below. We use the following modules:

  1. sqlite3 (to utilize our sqlite3 database tuesday.db)
  2. uuid (to create unique identifiers for projects and messages)
  3. json & request

codexlab's People

Contributors

joanchirinos avatar antondanylenko avatar dependabot[bot] avatar

Watchers

James Cloos avatar topher mykolyk avatar M. Foley avatar Susan Lin  avatar  avatar

codexlab's Issues

readme missing much

eg,

Launch instructions
Use appropriate formatting to denote commands, etc.
Include at least these 2 flavors of install guide, named as shown:
"Install and run on localhost"
"Install and run on Apache2"

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.