The Newsletter application was developed alongside its API to strengthen knowledge of JavaScript/TypeScript and learn new technologies such as Vue and Gemini, Google's artificial intelligence. Additionally, it served as a starting point for other concepts such as OOP and Design Patterns, specifically the Singleton design pattern used in the instances of the ORM and the Cron tool (both in the API).
📦 root
├── 📁 components # Contains the application components
├── 📁 layouts # Contains the page templates used in routes
├── 📁 middleware # Contains the configuration for user authentication middlewares
├── 📁 pages # Contains the routing configurations of the application
├── 📁 plugins # Contains the configurations for additional plugins
├── 📁 store # Contains the stores with the application's global states and methods for data manipulation
To style the application, the Vuetify library was used, which is based on Google's Material Design. Almost all elements of the application are derived from pre-existing Vuetify components, including their styles and other aspects like accessibility.
# Clone the project
git clone https://github.com/vinicioscst/newsletter-vue.git
# Install dependencies
npm install
# Create the .env file and fill in the correct data
BASE_URL= # Insert your API URL here. Example: http://localhost:3000
# Run the application
npm run dev
Warning
To access and manage the news, remember to create a user via the API.
├── 🔗 / # Home page, where the most recent news is displayed.
│ # You can search for news by title or topic, and sort by date or alphabetical order.
├── 🔗 /articles # Typically accessed after a search, filtering news through query params.
├── 🔗 /login # Contains the form for the admin user login.
├── 🔗 /admin # User dashboard where you can create, view, edit, and delete news articles.
│ ├── 🔗 /admin/settings # User settings, allowing changes to name, email, and/or password.
This project is under the MIT license.
Footnotes
-
Version 14.x or 16.x is recommended. ↩