Giter Club home page Giter Club logo

ghdb's People

Contributors

adityaparab avatar artolshansky avatar knochenmark avatar showndarya avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

ghdb's Issues

Implement server side file explorer

There is no way for users to select a folder where they want the repository to be checked out from the UI.

Implement the API that will provide JSON that contains file system tree.

Implement server configuration front end

When user arrives at root route of the project (/) the server will return client side page.
The Angular project responsible for rendering front end can be found under ./client folder.

Workflow is as follows

  1. When user arrives at this route, make an API call to the server.
  2. The API will return error if git repo is not configured correctly. If it returns error show the following screen
  3. The API will return configuration object if git repo is configured correctly. If it returns configuration object, show the following screen with editing disabled.

screen shot 2018-09-22 at 18 54 28

Ignore Colors.

  • Recommended CSS framework is @angular/material
  • Use indigo theme.

Implement PUT method API to update documents

Implement Generic PUT routes that can update documents.

Specs:
PUT: /:collectionName
BODY: Updated JSON Object that already exists in database[collectionName] with updated properties

Prerequisites:
There exists a json file with minimal structure

{
  "recipes": [
    { "_id": "x1y2z3", "name": "Tomato Soup" }
  ]
}

Example:
PUT: /recipes
BODY - { "_id": "x1y2z3", "name": "Tomato Soup UPDATED" }

Output:

{
  "recipes": [
    { "_id": "x1y2z3", "name": "Tomato Soup UPDATED" }
  ]
}

Implement POST method API to create documents

Implement Generic post routes that can create documents.

Specs:
POST: /:collectionName
BODY: JSON Object to be created

Prerequisites:
There exists a json file with minimal structure

{
  "recipes": []
}

Example:
POST: /recipes
BODY - { "name": "Tomato Soup" }

Output:

{
  "recipes": [
    { "_id": "some randomly generated unique string", "name": "Tomato Soup" }
  ]
}

Create README file

Title says it all.

What needs to be explained in the README?

Problem-
Finding a free json based database host can be trouble. There are restrictions and/or limitations in terms of bandwidth, data storage etc. Even if one finds such provider it involves creating new account and remembering an additional password. Free tier accounts have most features disabled and thus are not very friendly towards beginners who say I don't care about the rest I just want this simple data to be persisted

Solution:
This project solves these problem by using github repo to store database. Data is persisted on both remote and local repository.
There is a server that abstracts away data manipulation logic between github and the user.
The user provides data along with name of the collection in the database, and the server does appropriate operation based on METHOD of rest api request.
The server manipulates local repo database and periodically commits the database updated to the remote repo.

How to use:
Will be added once the MVP is complete

Implement DELETE method API to delete a document

Implement Generic DELETE routes that can delete a document.

Specs:
DELETE: /:collectionName
BODY: Document to be deleted.

Prerequisites:
There exists a json file with minimal structure

{
  "recipes": [
    { "_id": "x1y2z3", "name": "Tomato Soup" }
  ]
}

Example:
DELETE: /recipes
BODY - { "_id": "x1y2z3", "name": "Tomato Soup" }

Output:

{
  "recipes": []
}

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.