├── .gitignore ├── .gitlab-ci.yml ├── Makefile ├── README.md ├── make.bat ├── requirements.txt └── source ├── _static └── images │ ├── amfoss_logo.png │ └── favicon.ico ├── conf.py ├── index.rst └── projects ├── CMS ├── API │ ├── attendance-api.rst │ ├── authentication-api.rst │ ├── gallery-api.rst │ ├── index.rst │ ├── members-api.rst │ ├── registration-api.rst │ └── status-update-api.rst ├── deployment-guide.rst ├── index.rst ├── installation.rst └── intro-to-graphql.rst ├── index.rst └── temple-app ├── API ├── authentication.rst ├── dependencies.rst ├── index.rst └── technical-overview.rst ├── app-working ├── features.rst ├── index.rst ├── selecting-activity.rst └── workflow.rst ├── getting-started ├── for-contributors.rst ├── index.rst ├── prerequisites.rst ├── running-the-tests.rst └── setup-dev-env.rst ├── index.rst └── introduction.rst /.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | venv/ -------------------------------------------------------------------------------- /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | image: python:3.8-alpine 2 | 3 | # Global variables to be used in other jobs, branches and all 4 | variables: 5 | HTML_BASEURL: https://gitlab.com/amfoss/wiki 6 | INSTALLDIR: public 7 | 8 | # Create a global cache to keep other branch and jobs pages 9 | cache: 10 | paths: 11 | - public 12 | 13 | # Deploy to GitLab Pages 14 | pages: 15 | stage: deploy 16 | script: 17 | - pip3 install -r requirements.txt 18 | - apk add make 19 | - rm -rf public 20 | - make html 21 | - mv build/html public 22 | artifacts: 23 | paths: 24 | - public 25 | expire_in: 1 week 26 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line, and also 5 | # from the environment for the first two. 6 | SPHINXOPTS ?= 7 | SPHINXBUILD ?= sphinx-build 8 | SOURCEDIR = source 9 | BUILDDIR = build 10 | 11 | # Put it first so that "make" without argument is like "make help". 12 | help: 13 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 14 | 15 | .PHONY: help Makefile 16 | 17 | # Catch-all target: route all unknown targets to Sphinx using the new 18 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 19 | %: Makefile 20 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 21 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # amFOSS Wiki 2 | 3 | amFOSS Wiki built with Sphinx using a theme provided by Read the Docs. 4 | 5 | ## :minidisc: Installation Instructions 6 | 7 | ### Install requirements on Linux 8 | 9 | Before installing the `Sphinx` and `readthedocs.org` packages, you will need: 10 | * the `python3` language and its `pip3` package manager 11 | * a version of [GNU Make](https://www.gnu.org/software/make/), 12 | * the [git tool](https://git-scm.com). 13 | 14 | ### Install requirements on Windows 15 | 16 | Like on Linux environments, on Microsoft Windows, you need to install: 17 | * the `python` language and its `pip` package manager 18 | * All the `python` modules requirements with the `pip` command 19 | * `GNU Make` tool. 20 | * `git` tool. 21 | 22 | ### Installing Sphinx (every platform) 23 | 24 | To build the HTML website (or any other format supported by Sphinx, like PDF, EPUB or LaTeX), you need to install [Sphinx](https://sphinx-doc.org/) >= 1.3 as well as (for the HTML) the [readthedocs.org theme](https://github.com/snide/sphinx_rtd_theme). 25 | 26 | Those tools are best installed using [pip](https://pip.pypa.io), Python's module installer. The Python 3 version might be provided (on Linux distros) as `pip3` or `python3-pip`. 27 | 28 | Clone the repository 29 | 30 | ```sh 31 | $ git clone https://gitlab.com/amfoss/wiki.git 32 | $ cd wiki 33 | ``` 34 | 35 | Create a python3 virtualenv, and activate the environment 36 | 37 | ```sh 38 | $ virtualenv -p python3 venv 39 | $ source venv/bin/activate 40 | ``` 41 | 42 | You can then run: 43 | 44 | ```sh 45 | $ pip3 install -r requirements.txt 46 | ``` 47 | 48 | ### Building the HTML website 49 | 50 | You can then build the HTML documentation from the root folder of this repository with: 51 | 52 | ```sh 53 | $ make html 54 | ``` 55 | 56 | On Windows, building is still done at the root folder of this repository using the following command (`make` linux command is replaced with `make.exe`): 57 | ```sh 58 | $ make.exe html 59 | ``` 60 | 61 | You can then test the changes live by opening `build/html/index.html` in your favorite browser. 62 | 63 | **Debugging Tip:** 64 | - Delete the build cache before building documents if you make changes in the code by running the command `make clean` or using the `sphinx-build -E` option. 65 | -------------------------------------------------------------------------------- /make.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | 3 | pushd %~dp0 4 | 5 | REM Command file for Sphinx documentation 6 | 7 | if "%SPHINXBUILD%" == "" ( 8 | set SPHINXBUILD=sphinx-build 9 | ) 10 | set SOURCEDIR=source 11 | set BUILDDIR=build 12 | 13 | if "%1" == "" goto help 14 | 15 | %SPHINXBUILD% >NUL 2>NUL 16 | if errorlevel 9009 ( 17 | echo. 18 | echo.The 'sphinx-build' command was not found. Make sure you have Sphinx 19 | echo.installed, then set the SPHINXBUILD environment variable to point 20 | echo.to the full path of the 'sphinx-build' executable. Alternatively you 21 | echo.may add the Sphinx directory to PATH. 22 | echo. 23 | echo.If you don't have Sphinx installed, grab it from 24 | echo.http://sphinx-doc.org/ 25 | exit /b 1 26 | ) 27 | 28 | %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% 29 | goto end 30 | 31 | :help 32 | %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% 33 | 34 | :end 35 | popd 36 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | Sphinx==2.2.0 2 | sphinx-rtd-theme==0.4.3 -------------------------------------------------------------------------------- /source/_static/images/amfoss_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amfoss/wiki/8406f5322bce1cac120934463d92b2c69fe7daec/source/_static/images/amfoss_logo.png -------------------------------------------------------------------------------- /source/_static/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/amfoss/wiki/8406f5322bce1cac120934463d92b2c69fe7daec/source/_static/images/favicon.ico -------------------------------------------------------------------------------- /source/conf.py: -------------------------------------------------------------------------------- 1 | # Configuration file for the Sphinx documentation builder. 2 | # 3 | # This file only contains a selection of the most common options. For a full 4 | # list see the documentation: 5 | # https://www.sphinx-doc.org/en/master/usage/configuration.html 6 | 7 | # -- Path setup -------------------------------------------------------------- 8 | 9 | # If extensions (or modules to document with autodoc) are in another directory, 10 | # add these directories to sys.path here. If the directory is relative to the 11 | # documentation root, use os.path.abspath to make it absolute, like shown here. 12 | # 13 | # import os 14 | # import sys 15 | # sys.path.insert(0, os.path.abspath('.')) 16 | import sphinx_rtd_theme 17 | 18 | # -- Project information ----------------------------------------------------- 19 | 20 | project = 'amFOSS Wiki' 21 | copyright = '2020, amFOSS' 22 | author = 'amFOSS' 23 | 24 | gitlab_url = 'https://gitlab.com/amfoss/wiki' 25 | 26 | # -- General configuration --------------------------------------------------- 27 | 28 | # Add any Sphinx extension module names here, as strings. They can be 29 | # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom 30 | # ones. 31 | extensions = [ 32 | "sphinx_rtd_theme", 33 | ] 34 | 35 | # Add any paths that contain templates here, relative to this directory. 36 | templates_path = [] 37 | 38 | # List of patterns, relative to source directory, that match files and 39 | # directories to ignore when looking for source files. 40 | # This pattern also affects html_static_path and html_extra_path. 41 | exclude_patterns = [] 42 | 43 | 44 | # -- Options for HTML output ------------------------------------------------- 45 | 46 | # The theme to use for HTML and HTML Help pages. See the documentation for 47 | # a list of builtin themes. 48 | # 49 | html_theme = 'sphinx_rtd_theme' 50 | 51 | html_theme_options = { 52 | 'canonical_url': '', 53 | 'logo_only': False, 54 | 'display_version': True, 55 | 'prev_next_buttons_location': 'bottom', 56 | 'style_external_links': True, 57 | #'style_nav_header_background': 'white', 58 | # Toc options 59 | 'collapse_navigation': False, 60 | 'sticky_navigation': True, 61 | 'navigation_depth': -1, 62 | 'includehidden': True, 63 | 'titles_only': False 64 | } 65 | 66 | # Add any paths that contain custom static files (such as style sheets) here, 67 | # relative to this directory. They are copied after the builtin static files, 68 | # so a file named "default.css" will overwrite the builtin "default.css". 69 | html_static_path = ['_static'] 70 | 71 | html_logo = '_static/images/amfoss_logo.png' 72 | 73 | html_favicon = '_static/images/favicon.ico' 74 | 75 | html_use_index = True 76 | 77 | -------------------------------------------------------------------------------- /source/index.rst: -------------------------------------------------------------------------------- 1 | .. amFOSS Wiki documentation master file, created by 2 | sphinx-quickstart on Thu Jun 25 01:38:36 2020. 3 | You can adapt this file completely to your liking, but it should at least 4 | contain the root `toctree` directive. 5 | 6 | Welcome to amFOSS documentation! 7 | ================================ 8 | 9 | .. toctree:: 10 | :maxdepth: -1 11 | 12 | projects/index 13 | 14 | 15 | -------------------------------------------------------------------------------- /source/projects/CMS/API/attendance-api.rst: -------------------------------------------------------------------------------- 1 | attendance APIs 2 | =============== 3 | -------------------------------------------------------------------------------- /source/projects/CMS/API/authentication-api.rst: -------------------------------------------------------------------------------- 1 | Authentication APIs 2 | =================== 3 | -------------------------------------------------------------------------------- /source/projects/CMS/API/gallery-api.rst: -------------------------------------------------------------------------------- 1 | Gallery APIs 2 | ============ 3 | -------------------------------------------------------------------------------- /source/projects/CMS/API/index.rst: -------------------------------------------------------------------------------- 1 | APIs 2 | ==== 3 | 4 | .. toctree:: 5 | :maxdepth: -1 6 | 7 | authentication-api 8 | attendance-api 9 | status-update-api 10 | registration-api 11 | members-api 12 | gallery-api 13 | -------------------------------------------------------------------------------- /source/projects/CMS/API/members-api.rst: -------------------------------------------------------------------------------- 1 | Members APIs 2 | ============ 3 | -------------------------------------------------------------------------------- /source/projects/CMS/API/registration-api.rst: -------------------------------------------------------------------------------- 1 | Registration APIs 2 | ================= 3 | -------------------------------------------------------------------------------- /source/projects/CMS/API/status-update-api.rst: -------------------------------------------------------------------------------- 1 | Status Update APIs 2 | ================== 3 | -------------------------------------------------------------------------------- /source/projects/CMS/deployment-guide.rst: -------------------------------------------------------------------------------- 1 | Deployment Guide 2 | ================ -------------------------------------------------------------------------------- /source/projects/CMS/index.rst: -------------------------------------------------------------------------------- 1 | CMS 2 | === 3 | 4 | .. toctree:: 5 | :maxdepth: -1 6 | 7 | installation 8 | deployment-guide 9 | intro-to-graphql 10 | API/index -------------------------------------------------------------------------------- /source/projects/CMS/installation.rst: -------------------------------------------------------------------------------- 1 | Installation 2 | ============ 3 | 4 | The portal is primarily a django based application, and to set it up we 5 | require to have python environment with django and other project 6 | dependencies installed. Though one can work with the project without an 7 | virtual environment, it is recommended to use one so as to avoid 8 | conflicts with other projects. 9 | 10 | 1. Make sure that you have ``Python 3``, ``python-3-devel``, ``gcc``, 11 | ``virtualenv``, and ``pip`` installed. 12 | 2. Clone the repository 13 | 14 | .. code:: bash 15 | 16 | $ git clone https://github.com/amfoss/cms.git 17 | $ cd cms 18 | 19 | 3. Create a python 3 virtualenv, and activate the environment. 20 | 21 | .. code:: bash 22 | 23 | $ virtualenv -p python3 . 24 | $ source bin/activate 25 | 26 | 4. Install the project dependencies from ``requirements.txt`` 27 | 28 | .. code:: bash 29 | 30 | $ pip install -r requirements.txt 31 | 32 | After Setting up 33 | ---------------- 34 | 35 | From now when you start your work, run ``source bin/activate`` inside 36 | the project repository and you can work with the django application as 37 | usual - - ``python manage.py migrate`` - set up database - 38 | ``python manage.py createsuperuser`` - create admin user - 39 | ``python manage.py runserver`` - run the project locally 40 | 41 | *Make sure you pull new changes from remote regularly.* -------------------------------------------------------------------------------- /source/projects/CMS/intro-to-graphql.rst: -------------------------------------------------------------------------------- 1 | Introduction to GraphQL 2 | ======================= 3 | 4 | amFOSS CMS is based on GraphQL API. GraphQL is a query language which 5 | offers much more flexibility for integrations. It allows you to request 6 | the exact data you need, cutting down the number of calls you must 7 | perform to get it. The availability of all data at one endpoint is also 8 | the biggest advantage of GraphQL over the REST API (which has an 9 | endpoint for each resource object). 10 | 11 | There are two types of GraphQL APIs 1. Query 2. Mutation 12 | 13 | Our API provides types of operations: 14 | 15 | - Public APIs 16 | - User APIs 17 | - Admin APIs 18 | 19 | Click `here`_ to preview the API. 20 | 21 | To learn more about GraphQL language and its concepts, see the official 22 | GraphQL `website`_. 23 | 24 | The endpoint remains constant regardless of the operation you perform. 25 | Requests must be sent using the ``POST`` method and ``application/json`` 26 | content type. 27 | 28 | .. _here: https://api.amfoss.in/ 29 | .. _website: https://graphql.org/ 30 | -------------------------------------------------------------------------------- /source/projects/index.rst: -------------------------------------------------------------------------------- 1 | Projects 2 | ======== 3 | 4 | .. toctree:: 5 | :maxdepth: -1 6 | 7 | CMS/index 8 | temple-app/index -------------------------------------------------------------------------------- /source/projects/temple-app/API/authentication.rst: -------------------------------------------------------------------------------- 1 | Authentication 2 | ============== -------------------------------------------------------------------------------- /source/projects/temple-app/API/dependencies.rst: -------------------------------------------------------------------------------- 1 | Dependencies 2 | ============ -------------------------------------------------------------------------------- /source/projects/temple-app/API/index.rst: -------------------------------------------------------------------------------- 1 | API 2 | === 3 | 4 | .. toctree:: 5 | :maxdepth: -1 6 | 7 | technical-overview 8 | authentication 9 | dependencies -------------------------------------------------------------------------------- /source/projects/temple-app/API/technical-overview.rst: -------------------------------------------------------------------------------- 1 | Technical Overview 2 | ================== -------------------------------------------------------------------------------- /source/projects/temple-app/app-working/features.rst: -------------------------------------------------------------------------------- 1 | Features 2 | ======== -------------------------------------------------------------------------------- /source/projects/temple-app/app-working/index.rst: -------------------------------------------------------------------------------- 1 | How Temple App Works 2 | ==================== 3 | 4 | .. toctree:: 5 | :maxdepth: -1 6 | 7 | workflow 8 | selecting-activity 9 | features -------------------------------------------------------------------------------- /source/projects/temple-app/app-working/selecting-activity.rst: -------------------------------------------------------------------------------- 1 | Selecting Activity 2 | ================== -------------------------------------------------------------------------------- /source/projects/temple-app/app-working/workflow.rst: -------------------------------------------------------------------------------- 1 | Workflow 2 | ======== -------------------------------------------------------------------------------- /source/projects/temple-app/getting-started/for-contributors.rst: -------------------------------------------------------------------------------- 1 | For Contributors 2 | ================ -------------------------------------------------------------------------------- /source/projects/temple-app/getting-started/index.rst: -------------------------------------------------------------------------------- 1 | Getting Started 2 | =============== 3 | 4 | .. toctree:: 5 | :maxdepth: -1 6 | 7 | prerequisites 8 | setup-dev-env 9 | running-the-tests 10 | for-contributors -------------------------------------------------------------------------------- /source/projects/temple-app/getting-started/prerequisites.rst: -------------------------------------------------------------------------------- 1 | Prerequisites 2 | ============= -------------------------------------------------------------------------------- /source/projects/temple-app/getting-started/running-the-tests.rst: -------------------------------------------------------------------------------- 1 | Running the Tests 2 | ================= -------------------------------------------------------------------------------- /source/projects/temple-app/getting-started/setup-dev-env.rst: -------------------------------------------------------------------------------- 1 | Setting up Development Environment 2 | ================================== -------------------------------------------------------------------------------- /source/projects/temple-app/index.rst: -------------------------------------------------------------------------------- 1 | Temple App 2 | ========== 3 | 4 | .. toctree:: 5 | :maxdepth: -1 6 | 7 | introduction 8 | getting-started/index 9 | app-working/index 10 | API/index 11 | 12 | -------------------------------------------------------------------------------- /source/projects/temple-app/introduction.rst: -------------------------------------------------------------------------------- 1 | Introduction 2 | ============ 3 | 4 | Temple App is an Android platform that allows keeping track of finance based information The application's sole purpose is to make your development workflow of maintaining the database simple, fast and secure. It is a Content Management application that provides the feature of authentication that will only facilitate the higher authorities of the temple to login and maintain the whole. Using the application the user can be tracked for adding, searching, editing or even deleting the Pooja. The application focuses to ease the work of the temple authorities and help them in maintaining a clean and optimized content. The application also provides a handy way of printing the receipts directly from the app that prints the details of pooja/donation registrations of users. --------------------------------------------------------------------------------