Skip to content

abhinav-0401/Muse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Muse

Intuitive, cross‑platform Markdown note‑taking. Built with Blazor Server and TypeScript/Node.js.

Table of Contents

  1. Key Features
  2. View Screenshots
  3. Roadmap
  4. Tech Stack
  5. Repository Structure
  6. Getting Started
    1. Prerequisites
    2. Local development
  7. Configuration
  8. Code Style & Conventions

Key Features

Status Feature
Authentication: Sign‑up / log‑in with username + password
Rich Markdown editor: Real‑time preview with rich‑text shortcuts
Beautiful, Responsive UI: Mobile‑first layouts, TailwindCSS
Feed views: All‑posts & per‑user feeds, Markdown → HTML renderer
🔄 Gemini integration: AI‑powered note assistance
🔄 Profile editing: Update bio, avatar, preferences
🔄 Enhanced sign‑up: Collect additional profile fields
🔄 UI QoL: Dark‑mode toggle, accessibility improvements
🔄 Database switch: Migrating MongoDB → PostgreSQL

Version v0.1 is considered a beta release. Expect breaking changes until v1.0.


Screenshots

Click here to view screenshots User Posts User's Feed Rich Markdown Text Editor

Roadmap

  • v0.2 – AI-draft helper using Gemini panel
  • v0.3 – Better Signup Page with more user-relevant info
  • v0.4 – Postgres migration from MongoDB
  • v1.0 – UI QoL

Tech Stack

Layer Tech
Frontend Blazor Server (.NET 9)
Backend API Node.js 22, Express 5, TypeScript
Database (current) MongoDB Atlas
Incoming PostgreSQL
Auth JWT + Access + Refresh tokens
Dev ops Azure WebApps + GitHub Actions(Frontend), Render (Backend)

Repository Structure

Muse/
|-- MuseBackend/                     # Node.js + Express backend
|   |-- src/
|   |   |-- Controllers/            # Request handlers (auth, notes, etc.)
|   |   |-- Repositories/          # DB logic, abstracted Mongo ops (switchable to Postgres later)
|   |   |-- Router/                # Combines routes + middleware per module
|   |   |-- Main.ts                # Entry point – sets up server and middlewares
|   |
|   |-- .gitignore
|   |-- package-lock.json
|   |-- package.json
|   |-- tsconfig.json
|
|-- MuseFrontend/                   # Blazor Server frontend
|   |-- Components/                # Reusable UI pieces (editor, nav, etc.)
|   |-- Models/                    # C# types shared across pages and services
|   |-- Properties/                # Blazor config, launch settings etc.
|   |-- Services/                  # ApiService layer (AuthService, ContentService)
|   |-- Styles/                    # Tailwind + maybe any custom CSS?
|   |-- wwwroot/                   # Static assets like icons, fonts, JS helpers
|   |
|   |-- .gitignore
|   |-- MuseFrontend.csproj
|   |-- Program.cs                 # Bootstraps the Blazor app, DI container

Getting Started

Prerequisites

Local Development

# 1 / Clone
$ git clone https://github.com/your‑org/Muse.git && cd Muse

# 2 / Backend Environment Variables
$ cd MuseBackend
$ touch .env

> See table below for env variables to define

# 3 / Run Backend
$ npm i
$ npx tsc
$ npm dist/Main.js      # starts the backend on port 4321

# 4 / Fronten
$ cd ../MuseFrontend
$ dotnet watch                    # hot‑reload on :5076

# 5 / Visit
open http://localhost:5076

Configuration

Variable Description Example / Default
ACCESS_TOKEN_SECRET Secret key for signing access tokens 12345678910
REFRESH_TOKEN_SECRET Secret key for signing refresh tokens 12345678910
MONGO_URL Connection URI for MongoDB mongodb+srv://<user>:<pass>@cluster.mongodb.net/...

Code Style & Conventions

TypeScript / Node.js (Backend)

  • ES2020 syntax
  • 2‑space indentation
  • [Prettier] enforced – see package.json scripts
  • In classes, private members MUST be prefixed by an underscore(_);

C# / Blazor (Frontend)

  • Microsoft's C# guidelines, except:
    • All control flow must always have a brace, and may only omit a brace if only followed by a single short return statement.
    • All lines must be 120 columns or shorter.

License

Distributed under the MIT License.


About

Muse is an online, intuitive markdown note-taking app, written in Blazor Server + Typescript / Node.js

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors