A full-stack template for building modern web applications with Rust, MongoDB, Vue.js, and TypeScript. This template combines a performant Rust backend, a NoSQL MongoDB database, and a reactive Vue.js frontend, inspired by the MEVN stack.
- Backend: Rust (Axum for REST APIs, MongoDB driver)
- Database: MongoDB (NoSQL database)
- Frontend: Vue.js with TypeScript (Vite for fast builds, Tailwind CSS for styling)
- Tools: GitHub Actions for CI/CD, optional Docker support
Before you begin, ensure you have the following installed:
- Rust: Stable version (install via rustup)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Node.js: v20 or higher (install via nvm or official installer)
- MongoDB: v7 or higher (install locally or use MongoDB Atlas)
- Git: For version control
git clone https://github.com/SHA888/RMVT.git
cd RMVT# Navigate to backend directory
cd backend
# Copy environment file
cp .env.example .env
# Edit .env with your database configuration
# DATABASE_URL=mongodb://localhost:27017/rmvt_db
# Start the backend
cargo runThe backend will be available at: http://localhost:3000
# Navigate to frontend directory
cd frontend
# Copy environment file
cp .env.example .env
# Edit .env with your API URL
# VITE_API_URL=http://localhost:3000
# Install dependencies
npm install
# Start the development server
npm run devThe frontend will be available at: http://localhost:5173
- Ensure MongoDB is running locally or via MongoDB Atlas
- The backend will automatically create the
rmvt_dbdatabase and required collections on first run
For containerized development:
- Ensure Docker and Docker Compose are installed
- Run the full stack:
docker-compose -f docker/docker-compose.yml up --build
Access the services:
- Backend: http://localhost:3000
- Frontend: http://localhost:5173
- MongoDB: localhost:27017
cd backend
cargo testcd frontend
npm test- Backend: Deploy to Fly.io, Render, or AWS ECS
- Frontend: Deploy to Vercel, Netlify, or Cloudflare Pages
- Database: Use MongoDB Atlas or another managed MongoDB instance
Remember to update environment variables in .env files for production URLs.
We welcome contributions! Here's how to get started:
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Make your changes
- Commit your changes:
git commit -m "Add feature" - Push to the branch:
git push origin feature-name - Open a pull request
Found a bug or have a suggestion? Please open an issue.
This project is licensed under the MIT License. See the LICENSE file for details.