Modern SaaS application built with Vue3 frontend and Express backend.
- Vue 3 with TypeScript
- Vite (build tool)
- Pinia (state management)
- Vue Router (routing)
- Socket.IO Client (real-time communication)
- Sass (CSS preprocessor)
- Express with TypeScript
- Socket.IO (real-time communication)
- Winston (logging)
- Morgan (HTTP request logging)
- Helmet (security)
- CORS
- Azure (to be configured)
- CI/CD pipelines (to be configured)
saas-app/
├── frontend/ # Vue3 frontend application
│ ├── src/
│ │ ├── assets/ # Static assets
│ │ ├── components/ # Vue components
│ │ ├── composables/ # Vue composables
│ │ ├── router/ # Vue Router configuration
│ │ ├── services/ # API and Socket services
│ │ ├── stores/ # Pinia stores
│ │ ├── types/ # TypeScript types
│ │ ├── views/ # Page views
│ │ ├── App.vue # Root component
│ │ └── main.ts # Entry point
│ ├── .env.example # Environment variables example
│ └── vite.config.ts # Vite configuration
│
├── backend/ # Express backend application
│ ├── src/
│ │ ├── config/ # Configuration files
│ │ ├── controllers/ # Route controllers
│ │ ├── middleware/ # Express middleware
│ │ ├── models/ # Data models
│ │ ├── routes/ # API routes
│ │ ├── services/ # Business logic
│ │ ├── types/ # TypeScript types
│ │ ├── utils/ # Utility functions
│ │ ├── app.ts # Express app configuration
│ │ └── index.ts # Entry point
│ ├── .env.example # Environment variables example
│ └── tsconfig.json # TypeScript configuration
│
└── package.json # Root package.json with workspace scripts
- Node.js v20.9.0 or higher
- npm or yarn
- Clone the repository
git clone <repository-url>
cd saas-app- Install dependencies for all projects
npm run install:allOr install manually:
# Install root dependencies
npm install
# Install frontend dependencies
cd frontend
npm install
# Install backend dependencies
cd ../backend
npm install- Configure environment variables
Frontend (.env):
cd frontend
cp .env.example .env
# Edit .env with your configurationBackend (.env):
cd backend
cp .env.example .env
# Edit .env with your configurationRun both frontend and backend in development mode:
npm run devOr run them separately:
Frontend only:
npm run dev:frontend
# Or: cd frontend && npm run devBackend only:
npm run dev:backend
# Or: cd backend && npm run dev- Frontend: http://localhost:5173
- Backend API: http://localhost:3000
- API Health Check: http://localhost:3000/api/v1/health
Build both projects:
npm run buildOr build separately:
npm run build:frontend
npm run build:backendnpm run dev- Run both frontend and backend in development modenpm run build- Build both projects for productionnpm run install:all- Install dependencies for all projects
npm run dev- Start Vite dev servernpm run build- Build for productionnpm run preview- Preview production build
npm run dev- Start development server with hot reloadnpm run build- Compile TypeScript to JavaScriptnpm run start- Run production buildnpm run watch- Watch mode for TypeScript compilation
- Real-time communication with Socket.IO
- RESTful API with Express
- State management with Pinia
- Routing with Vue Router
- TypeScript for type safety
- Logging with Winston
- Security with Helmet
- CORS configuration
- Error handling
- Environment configuration
- Add authentication (JWT)
- Add database integration (PostgreSQL/MongoDB)
- Configure Azure infrastructure
- Setup CI/CD pipelines
- Add testing (Jest, Vitest, Cypress)
- Add API documentation (Swagger)
- Add monitoring and analytics
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
ISC