diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cc3d916 --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +# Folders +site-media/ +static-files/ +database/ +.idea/ + +# Files +*.DS_Store +*.pyc +*.css.map +*.js.map +*.log diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..4a8bcf4 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,137 @@ +# Contributing to this project + +Please take a moment to review this document in order to make the contribution +process easy and effective for everyone involved. + +Following these guidelines helps to communicate that you respect the time of +the developers managing and developing this open source project. In return, +they should reciprocate that respect in addressing your issue or assessing +patches and features. + + +## Using the issue tracker + +The issue tracker is the preferred channel for [bug reports](#bugs), +[features requests](#features) and [submitting pull +requests](#pull-requests), but please respect the following restrictions: + +* Please **do not** use the issue tracker for personal support requests (use + [Stack Overflow](http://stackoverflow.com)). + +* Please **do not** derail or troll issues. Keep the discussion on topic and + respect the opinions of others. + + + +## Bug reports + +A bug is a _demonstrable problem_ that is caused by the code in the repository. +Good bug reports are extremely helpful - thank you! + +Guidelines for bug reports: + +1. **Use the GitHub issue search** — check if the issue has already been + reported. + +2. **Check if the issue has been fixed** — try to reproduce it using the + latest `master` or development branch in the repository. + +A good bug report shouldn't leave others needing to chase you up for more +information. Please try to be as detailed as possible in your report. What is +your environment? What steps will reproduce the issue? What browser(s) and OS +experience the problem? What would you expect to be the outcome? All these +details will help people to fix any potential bugs. + +Example: + +> Short and descriptive example bug report title +> +> A summary of the issue and the browser/OS environment in which it occurs. If +> suitable, include the steps required to reproduce the bug. +> +> 1. This is the first step +> 2. This is the second step +> 3. Further steps, etc. +> +> Any other information you want to share that is relevant to the issue being +> reported. This might include the lines of code that you have identified as +> causing the bug, and potential solutions (and your opinions on their +> merits). + + + +## Feature requests + +Feature requests are welcome. But take a moment to find out whether your idea +fits with the scope and aims of the project. It's up to *you* to make a strong +case to convince the project's developers of the merits of this feature. Please +provide as much detail and context as possible. + + + +## Pull requests + +Good pull requests - patches, improvements, new features - are a fantastic +help. They should remain focused in scope and avoid containing unrelated +commits. + +**Please ask first** before embarking on any significant pull request (e.g. +implementing features, refactoring code, porting to a different language), +otherwise you risk spending a lot of time working on something that the +project's developers might not want to merge into the project. + +Please adhere to the coding conventions used throughout a project (indentation, +accurate comments, etc.) and any other requirements (such as test coverage). + +Follow this process if you'd like your work considered for inclusion in the +project: + +1. [Fork](http://help.github.com/fork-a-repo/) the project, clone your fork, + and configure the remotes: + + ```bash + # Clone your fork of the repo into the current directory + git clone https://github.com// + # Navigate to the newly cloned directory + cd + # Assign the original repo to a remote called "upstream" + git remote add upstream https://github.com/RyanNoelk/OpenEats + ``` + +2. If you cloned a while ago, get the latest changes from upstream: + + ```bash + git checkout + git pull upstream + ``` + +3. Create a new topic branch (off the `dev` branch) to + contain your feature, change, or fix: + + ```bash + git checkout -b + ``` + +4. Commit your changes in logical chunks. Use Git's + [interactive rebase](https://help.github.com/articles/interactive-rebase) + feature to tidy up your commits before making them public. + +5. Locally merge (or rebase) the upstream development branch into your topic branch: + + ```bash + git pull [--rebase] upstream dev + ``` + +6. Push your topic branch up to your fork: + + ```bash + git push origin + ``` + +7. [Open a Pull Request](https://help.github.com/articles/using-pull-requests/) + with a clear title and description against the `dev` branch`. + +**IMPORTANT**: By submitting a patch, you agree to allow the project owner to +license your work under the same license as that used by the project. + +Shout-out to [necolas](https://github.com/necolas/issue-guidelines) for the contributing template. diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..2e13664 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,8 @@ +FROM nginx:1.13.3-alpine + +RUN rm /etc/nginx/conf.d/default.conf +COPY default.conf /etc/nginx/conf.d/default.conf + +RUN mkdir /scripts +WORKDIR /scripts +COPY start.sh /scripts/start.sh diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..446816e --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015-present Ryan Noelk + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..879e0ae --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# OpenEats Project + +[![Build Status](https://travis-ci.org/RyanNoelk/OpenEats.svg?branch=master)](https://travis-ci.org/RyanNoelk/OpenEats) + +OpenEats is a recipe management site that allows users to create, share, and store their personal collection of recipes. This fork uses Django Rest Framework as a backend and React (with flux) as a front end. + +The usage for the app is intended for a single user or a small group. For my personal use, I would be an admin user and a few (about 5-6) friends and family would be normal users. Admin users can add other users to the project (no open sign-ups), make changes to the available Cuisines and Courses, and add to the homepage banner. Normal users just have the ability to add recipes. Below are a few of the core features the app provides. + +- Creating, viewing, and editing recipes. +- Browsing and searching for recipes. +- Creating grocery lists +- Quickly print recipe. +- Linking recipes and ingredient grouping + +### [Read the docs on getting started here!](https://github.com/RyanNoelk/OpenEats/blob/master/docs/Running_the_App.md) + +# Contributing +Please read the [contribution guidelines](https://github.com/RyanNoelk/OpenEats/blob/master/CONTRIBUTING.md) in order to make the contribution process easy and effective for everyone involved. diff --git a/default.conf b/default.conf new file mode 100644 index 0000000..b289af5 --- /dev/null +++ b/default.conf @@ -0,0 +1,40 @@ + +upstream api { + ip_hash; + server api:API_PORT; +} + +upstream node { + ip_hash; + server node:NODE_PORT; +} + +server { + listen 80; + server_name localhost; + + location / { + proxy_pass http://node/; + proxy_set_header Host $host; + } + + location /api/ { + proxy_pass http://api; + proxy_set_header Host $host; + } + + location /admin/ { + proxy_pass http://api; + proxy_set_header Host $host; + } + + location /static-files/ { + root /var/www/html/openeats-static; + try_files $uri /static-files/$uri; + } + + location /site-media/ { + root /var/www/html/openeats-static; + try_files $uri /site-media/$uri; + } +} \ No newline at end of file diff --git a/start.sh b/start.sh new file mode 100755 index 0000000..9f1d628 --- /dev/null +++ b/start.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env sh + +# NGINX doesn't let you use ENV vars within the conf file. +# We use sed to set the env vars we need. +# Sed replace the API_PORT and NODE_PORT vars. + +sed -i "s/API_PORT/$API_PORT/g" /etc/nginx/conf.d/default.conf; +sed -i "s/NODE_PORT/$NODE_PORT/g" /etc/nginx/conf.d/default.conf; + +# Start the NGINX service. + +nginx -g "daemon off;";