{"id":22976050,"url":"https://github.com/marcvincenti/customapi","last_synced_at":"2026-04-15T23:32:02.625Z","repository":{"id":70077090,"uuid":"61749559","full_name":"marcvincenti/customapi","owner":"marcvincenti","description":"Develop complete back-ends without any code, or a little if you want ;)","archived":false,"fork":false,"pushed_at":"2016-12-23T21:44:16.000Z","size":199,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-07T20:44:45.269Z","etag":null,"topics":["aws","clojure","clojurescript","microservice","serverless"],"latest_commit_sha":null,"homepage":"","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/marcvincenti.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-06-22T20:31:59.000Z","updated_at":"2020-11-03T00:00:05.000Z","dependencies_parsed_at":"2023-02-25T20:15:39.851Z","dependency_job_id":null,"html_url":"https://github.com/marcvincenti/customapi","commit_stats":null,"previous_names":["marcvincenti/customapi"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/marcvincenti/customapi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcvincenti%2Fcustomapi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcvincenti%2Fcustomapi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcvincenti%2Fcustomapi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcvincenti%2Fcustomapi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marcvincenti","download_url":"https://codeload.github.com/marcvincenti/customapi/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marcvincenti%2Fcustomapi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31865000,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"ssl_error","status_checked_at":"2026-04-15T15:24:39.138Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","clojure","clojurescript","microservice","serverless"],"created_at":"2024-12-15T00:47:52.903Z","updated_at":"2026-04-15T23:32:02.601Z","avatar_url":"https://github.com/marcvincenti.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Serverless \u0026 microservices\nThis project aim to provide a quick and easy way to build services like Firebase, but value oriented (inspired by [this talk](https://www.youtube.com/watch?v=-6BsiVyC1kM)) and serverless (powered by AWS). The next step will be sharing public data between different platforms.\n\nYou can run it with :\n```\nlein clean\nlein cljsbuild [auto|once] [dev|prod]\nlein ring server-headless\n```\n\n## What is working now ?\n**Nothing** :)  \nThere is only a back-end and a front-end.   \nYou can only create/delete projects.\nThere is also a lot of dead code in the back-end. It's the result of a lot of change in this project which is first a playground project to learn new technos. Some will be probably re-used later, that's why i haven't deleted yet.\n\n## Review\nMy biggest problem is the front-end. I don't nderstand everything, i've just moved to react and i don't know how to use it properly. The code (front) is organized like in angular2 (that's what i know) but it doen't fit well for react.  \nThere is 4 parts/folders :\n\n - **app/**\n\t - *core.cljs* : initialization of the app and routing\n\t - *state.cljs* : a big ratom to stock values shared all over the app\n - **components/**\n   - *alert/alert.cljs* : basic code to use bootstrap alert components without rewriting them everywhere\n   - *menu_bar/menu_bar.cljs* : The navbar on top of every pages in the app\n - **pages/**\n   - *about/about.cljs* : This page only show the big ratom from state.cljs (actually used for debug)\n   - *home/home.cljs* : Do I really have to explain this ?\n   - *login/login.cljs* : ...\n   - *project_details/project_details* : This will be the page where you can control a rest api (actuall show the rest api name)\n   - *projects/projects.cljs* : the page where you can create, list and delete your apis.\n - **providers/**\n   - *auth/auth.cljs* : The controller for user authentication in app\n   - *cookies/cookies.cljs* : The controller to save and load data from cookies.\n   - *projects/projects.cljs* : The controller to create/delete/get Rest apis.\n\nSo here are my questions :\n\n  - Is it a good organization ?\n  - How to pass properly params in navigation ?\n  - Is there a way to build auth guards in routing ? (like if i'm authenticated within the app, when i request the login page, i am automatically redirected to projects page or if i'm not connected and i want to see my projects, i'm redirected to the login page)\n  - Is there something you had done another way if you were doing these ?\n  - Any good advice ?\n\nThank you ;)\n\n## Security (front-end)\nYou have to provide some IAM credentials with the following strategy : AmazonAPIGatewayAdministrator.  \nThey aren't stocked on the web but in your session and in a cookie if you set _remember be_ to true while login.  \nThis isn't safe at all, because we also provide this credentials each time we have to perform a request to the back-end. But this is for test purposes. This won't be changed until this repo/project will be publicly accessible or in an open beta. Feel free to propose any better solution.\n\n## Basic functions\nThe first goal is to let user user build serverless api like this :\n![Serverless schema on AWS] (serverless-app.png)\n\n## TODO(s)\n+ Auth guards\n+ Authentication -\u003e IAM ? Cognito ?\n+ Database -\u003e DynamoDB\n+ Storage -\u003e S3\n+ Function -\u003e Lambda\n+ Security rules\n\n## Requirements\n\n* JDK 1.7+\n* Leiningen 2.x\n\n## License\n\nCopyright © 2016 Marc Vincenti\n\nDistributed under the The MIT License (MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcvincenti%2Fcustomapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarcvincenti%2Fcustomapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcvincenti%2Fcustomapi/lists"}