Motivation

This project is a space for developers looking to level up their skills and create meaningful projects that benefit both themselves and maybe even some users. You can bring your favorite project to life within this Monorepo, using any JS framework you love (all supported by NX). Simplest examples you can build your favorite apps' clone and try to deploy it to Vercel, feel free to build if you have any uniqe ideas.

You'll get to experience a real-world process and workflow, working with a big codebase, gaining valuable insights and making a good project showcase for your portfolio šŸš€. Members of the repo can / recommended to review each others code to help and share knowledge as well as keep the code base clean.

Current apps list

  • šŸ““ Full Stack Note Taking App This project aims to provide a simplified version of popular note-taking applications like Notion and Craft.

Some Todos

  • Implement Angular Frontend app for Rogo-Notes app, the Backend is alredy built with Nestjs.
  • Implement MD based Document that could be saved on user machine or a linked remote space like (Google Drive, Dropbox etc.)
  • Having media (Audio, Vidoe, Photo) attachments to each Document

Getting Started

run npm install to install all the dependencies.

Tech stack: NX, Nesjs, Typeorm, Postgres, Angular, React, Docker, Docker-compose and more.

Development server

Run docker-compose up for a dev server, it will run up the Posgress DB.

Understand this workspace

###Project structure:

ā””ā”€ā”€ root
    ā”œā”€ā”€ apps
    ā”‚   ā”œā”€ā”€ api                   <-- nest/node/denojs
    ā”‚   ā””ā”€ā”€ client                <-- angular/react
ā””ā”€ā”€ libs (1)
    ā”œā”€ā”€ api                       <-- grouping folder (dir)
    ā”‚   ā”œā”€ā”€ core                  <-- grouping folder (dir)
    ā”‚   ā”‚   ā””ā”€ā”€ feature           <-- nest/node/deno:lib (2)
    ā”‚   ā”œā”€ā”€ feature-1             <-- grouping folder (dir)
    ā”‚   ā”‚   ā”œā”€ā”€ data-access       <-- nest/node/deno:lib, service + entities
    ā”‚   ā”‚   ā”œā”€ā”€ feature           <-- nest/node/deno:lib, module + controller
    ā”‚   ā”‚   ā””ā”€ā”€ utils             <-- nest/node/deno:lib, things like interceptors, guards, pipes etc...
    ā”‚   ā””ā”€ā”€ feature-2             <-- grouping folder (dir)
    ā”‚       ā”œā”€ā”€ data-access       <-- nest/node/deno:lib, service + entities
    ā”‚       ā”œā”€ā”€ feature           <-- nest/node/deno:lib, module + controller
    ā”‚       ā””ā”€ā”€ utils             <-- nest/node/deno:lib, things like interceptors, guards, pipes etc...
    ā”œā”€ā”€ client                    <-- grouping folder (dir)
    ā”‚   ā”œā”€ā”€ shell                 <-- grouping folder (dir) 
    ā”‚   ā”‚   ā””ā”€ā”€ feature           <-- angular/react:lib (3)
    ā”‚   ā”œā”€ā”€ feature-1             <-- grouping folder (dir)
    ā”‚   ā”‚   ā”œā”€ā”€ data-access       <-- angular/react:lib, service, API calls, state management)
    ā”‚   ā”‚   ā”œā”€ā”€ feature           <-- grouping folder (dir) or lib (4)
    ā”‚   ā”‚   ā”‚   ā”œā”€ā”€ list          <-- angular/react:lib e.g. ProductList
    ā”‚   ā”‚   ā”‚   ā””ā”€ā”€ detail        <-- angular/react:lib e.g. ProductDetail
    ā”‚   ā”‚   ā””ā”€ā”€ ui                <-- grouping folder (dir)
    ā”‚   ā”‚       ā”œā”€ā”€ comp-1        <-- angular/react:lib, SCAM for Component
    ā”‚   ā”‚       ā””ā”€ā”€ pipe-1        <-- angular/react:lib, SCAM for Pipe
    ā”‚   ā””ā”€ā”€ shared                <-- grouping folder (dir)
    ā”‚       ā”œā”€ā”€ data-access       <-- angular/react:lib, any Service or State management to share across the Client app)
    ā”‚       ā”œā”€ā”€ ui                <-- grouping folder (dir) (5)
    ā”‚       ā””ā”€ā”€ utils             <-- angular/react:lib, usually shared Guards, Interceptors, Validators...)
    ā””ā”€ā”€ shared                    <-- grouping folder (dir), most libs in here are buildable @nrwl/angular:lib)
        ā”œā”€ā”€ data-access           <-- my shared data-access is usually models, so it is a lib
        ā”œā”€ā”€ ui                    <-- optional grouping folder (dir), if I have multiple client apps
        ā””ā”€ā”€ utils                 <-- optional grouping folder (dir), usually validation logic or shared utilities
            ā”œā”€ā”€ util1             <-- lib
            ā””ā”€ā”€ util2             <-- lib

Run nx graph to see a diagram of the dependencies of the projects.

Further help with NX

Visit the Nx Documentation to learn more.

Top categories

Loading Svelte Themes