{"id":35324596,"url":"https://github.com/strcoder4007/memorysequence","last_synced_at":"2026-04-10T11:02:19.539Z","repository":{"id":330710582,"uuid":"97858455","full_name":"strcoder4007/memorySequence","owner":"strcoder4007","description":"A web app for blogging with everything written from scratch. Made this to teach myself Angular 4 + Typescript back in 2017. Currently updated to Angular 7 (2019). Now rewritten in Vue3 (2025).","archived":false,"fork":false,"pushed_at":"2025-12-27T12:51:56.000Z","size":9180,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-12-29T05:46:36.523Z","etag":null,"topics":["angular-cli","angular7","bootstrap","nodejs","typescript","vue3"],"latest_commit_sha":null,"homepage":"http://shubhamswe.xyz/memseq","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/strcoder4007.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-07-20T16:50:53.000Z","updated_at":"2025-12-27T12:51:59.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/strcoder4007/memorySequence","commit_stats":null,"previous_names":["strcoder4007/memorysequence"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/strcoder4007/memorySequence","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strcoder4007%2FmemorySequence","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strcoder4007%2FmemorySequence/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strcoder4007%2FmemorySequence/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strcoder4007%2FmemorySequence/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/strcoder4007","download_url":"https://codeload.github.com/strcoder4007/memorySequence/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/strcoder4007%2FmemorySequence/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31639524,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T07:40:12.752Z","status":"ssl_error","status_checked_at":"2026-04-10T07:40:11.664Z","response_time":98,"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":["angular-cli","angular7","bootstrap","nodejs","typescript","vue3"],"created_at":"2025-12-31T01:08:19.300Z","updated_at":"2026-04-10T11:02:19.533Z","avatar_url":"https://github.com/strcoder4007.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Memory Sequence · Vue 3 rewrite\n\nMemory Sequence is now a modern Vue 3 + Vite single-page experience that lets you mount any JSON archive into browser storage and read/edit it entirely client-side. The UI embraces a 2025-ready, minimalist dark aesthetic designed for focused reading on any device.\n\n![Memory Sequence preview](src/assets/img/readme.png)\n\n---\n\n- [Key Features](#key-features)\n- [Project Structure](#project-structure)\n- [Getting Started](#getting-started)\n- [Editing Content](#editing-content)\n- [Styling \u0026 Theming](#styling--theming)\n- [Build \u0026 Deploy](#build--deploy)\n- [Next Steps](#next-steps)\n\n---\n\n## Key Features\n\n- **Zero backend** — Static hosting friendly; mount a JSON file into `localStorage`, no server needed.\n- **Self-serve data flow** — Upload/paste JSON, persist it locally, generate/export it, or demount with a click.\n- **Modern dark UI** — Focused typography, responsive layout, and gentle motion.\n- **Rich reading view** — Sanitised HTML rendering with tag chips and reading-time estimates.\n- **Archive overview** — Quick stats (total entries, last update, tag count) plus interactive cards.\n\n## Project Structure\n\n```\nmemorySequence/\n├── index.html           # HTML shell \u0026 metadata\n├── public/             # Static assets copied as-is (favicon, etc.)\n├── src/\n│   ├── App.vue          # Shell layout, storage-backed data flow\n│   ├── components/\n│   │   ├── AnalyticsBar.vue\n│   │   ├── JsonMountPanel.vue   # Upload/paste flow + sample JSON\n│   │   ├── MemoryDetail.vue\n│   │   ├── MemoryEditor.vue\n│   │   └── MemoryList.vue\n│   ├── assets/\n│   │   ├── img/         # Preserved brand imagery\n│   │   └── vue.svg\n│   ├── data/\n│   │   └── sampleEntries.js     # Inline example used by the mount panel\n│   ├── main.js          # Entry point\n│   └── style.css        # Global theme variables \u0026 resets\n├── docs/                # Project notes (update as the Vue build evolves)\n├── package.json\n└── vite.config.js\n```\n\n## Getting Started\n\n```bash\nnpm install\nnpm run dev\n```\n\n- Visit `http://localhost:5173/` (default Vite port).\n- `npm run build` bundles the site for production into `dist/`.\n- `npm run preview` serves the production build locally.\n\n## Editing Content\n\n1. Launch the app and use the **Mount JSON** panel to upload a `.json` file or paste raw JSON. The payload is validated, stored in `localStorage`, and immediately rendered.\n2. Use the **Generate JSON** button (below the search bar) any time to reveal a full-width textarea containing the exact archive currently stored in the browser. Copy it out for backups or manual editing.\n3. Click **Demount current JSON** to wipe the mounted archive from the browser and return to the upload panel.\n4. The in-app **New Memory** editor converts your draft into the required shape and automatically prepends it to the mounted archive; the textarea mentioned above will include your new entry instantly.\n\nEach entry should follow this structure:\n\n```json\n{\n  \"title\": \"Entry title\",\n  \"content\": \"\u003cp\u003eHTML content…\u003c/p\u003e\",\n  \"time\": \"14 November 2025\",\n  \"tags\": [\"personal\", \"theme\"]\n}\n```\n\nKeep HTML simple (`\u003cp\u003e`, `\u003cul\u003e`, `\u003ca\u003e`, `\u003cstrong\u003e`, etc.); the reader sanitises content with DOMPurify before rendering.\n\n## Styling \u0026 Theming\n\n- Global tokens/typography live in `src/style.css`.\n- Component-level polish is scoped within each `.vue` file.\n- Assets from the original project (`src/assets/img/*`) remain available for future branding iterations.\n- The layout uses CSS variables for rapid experimentation with hues, contrasts, and backgrounds.\n\n## Build \u0026 Deploy\n\n1. Generate a production build:\n   ```bash\n   npm run build\n   ```\n   (The current Vite config emits to `docs/` for GitHub Pages hosting.)\n2. Deploy the generated folder to any static host (Netlify, Vercel, GitHub Pages, S3, etc.).\n3. Ship only the static bundle; readers will mount their own JSON at runtime, so there is no need to distribute sensitive data with the build.\n\nNo server-side scraper or Angular dependencies remain — this is a purely static Vue front-end that hydrates content from the viewer’s browser storage.\n\n## Next Steps\n\n- Layer in filters (by tag, year) or a fuzzy search when you’re ready.\n- Extend the design system with additional components (timeline, gallery, etc.).\n- Update the documents under `docs/` to reflect future enhancements to the Vue rebuild.\n\nEnjoy crafting the new Memory Sequence experience!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstrcoder4007%2Fmemorysequence","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstrcoder4007%2Fmemorysequence","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstrcoder4007%2Fmemorysequence/lists"}