{"id":15679996,"url":"https://github.com/devorein/qocean","last_synced_at":"2025-05-05T21:33:38.319Z","repository":{"id":36976641,"uuid":"262709747","full_name":"Devorein/Qocean","owner":"Devorein","description":"A self hosted MERN quiz app for making learning fun and effective","archived":false,"fork":false,"pushed_at":"2023-01-25T04:02:27.000Z","size":4126,"stargazers_count":11,"open_issues_count":49,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-03-30T23:51:09.887Z","etag":null,"topics":["apollo-client","apollo-server-express","graphql-api","learning-by-doing","mern-stack","questions-and-answers","quiz-app","react-app","self-hosted"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/Devorein.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-10T04:11:59.000Z","updated_at":"2023-08-14T07:34:52.000Z","dependencies_parsed_at":"2023-02-14T04:25:14.954Z","dependency_job_id":null,"html_url":"https://github.com/Devorein/Qocean","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Devorein%2FQocean","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Devorein%2FQocean/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Devorein%2FQocean/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Devorein%2FQocean/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Devorein","download_url":"https://codeload.github.com/Devorein/Qocean/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252579992,"owners_count":21771248,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["apollo-client","apollo-server-express","graphql-api","learning-by-doing","mern-stack","questions-and-answers","quiz-app","react-app","self-hosted"],"created_at":"2024-10-03T16:39:44.890Z","updated_at":"2025-05-05T21:33:38.287Z","avatar_url":"https://github.com/Devorein.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Qocean\n\nA self hosted MERN quiz app for making learning fun and effective.\n\nSince its self hosted you'll host the app on your own server aka localhost and your own database, so that none can view your credentials and private data, but it needs a bit more effort from you to work.\n\n## Requirements  \n\n* Node  \n* NPM  \n\n## Usage Guidelines\n\n1. Clone or download the experiment branch. It always has the latest commits.\n2. Navigate to the client folder and install the dependencies by running `npm i` .\n3. In the public folder create another folder named `uploads` , this is where all the uploaded files will be stored.\n4. Navigate to the server folder and install its dependencies by running `npm i` .\n5. Inside config folder create a file named config.env (its required as it contains all the configuration info for the app).\n6. Create a mongodb atlas account and cloud cluster, and provide the url to the config.env file.\n7. To start both the client and the server navigate to the respective directory and run `npm start` \n\nMERN app for making killer quiz to enhance learning\n\nSince its self hosted you'll host the app on your own server aka localhost and your own database, so that none can view your credentials and private data, but it needs a bit more effort from you to work.\n\n### Configuration file\n\nMake sure your configuration file have the following key and value pairs separated by =\n\n`PORT` =any valid port\n\n`NODE_ENV` =development|production|testing\n\n`MONGO_URI` =mongodb atlas cluster url\n\n`FILE_UPLOAD_SIZE` =max file upload size in bytes\n\n`JWT_SECRET` =any strong password\n\n`JWT_EXPIRE` =see jwt documentation for more info, tldr; use `day_number` d to specify how many days the token will last\n\n`JWT_COOKIE_EXPIRE` =same as `JWT_EXPIRE` without the d\n\n## Features\n\nTake a look at this \u003ca href=\"./server/docs/features.md\"\u003efile\u003c/a\u003e to see all the available features of the app and the api.\n\n## API Documentation\n\n### Rest\n\nTake a look at this \u003ca href=\"./docs/api/REST/index.html\"\u003efile\u003c/a\u003e to understand the rest api structure.\n\n### Graphql\n\nTo generate a static graphql documentation, install `graphqhdoc` , navigate to the server dir and run `graphdoc` \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevorein%2Fqocean","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevorein%2Fqocean","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevorein%2Fqocean/lists"}