A beginner-friendly guide to building a full-stack web portal using SvelteKit, MySQL, Drizzle ORM, Lucia authentication, Skeleton UI, and Chart.js.
This project teaches students and beginner developers how to build a modern, full-stack web portal that visualizes data from a MySQL database.
Technology | Purpose | Link |
---|---|---|
Svelte | A popular component-based UI framework for building reactive interfaces | svelte.dev |
SvelteKit | A framework for rapidly building robust, performant web applications using Svelte. | kit.svelte.dev |
MySQL | An open-source relational database management system (RDBMS) used to store and manage data | mysql.com |
XAMPP | A local development environment providing Apache, MySQL, PHP, and Perl for easy setup | apachefriends.org |
Drizzle ORM | A type-safe SQL Object-Relational Mapper (ORM) for building queries and managing migrations | orm.drizzle.team |
Lucia | An authentication guide for managing user authentication and sessions | lucia-auth.com |
Tailwind CSS | A utility-first CSS framework for styling and customization | tailwindcss.com |
Skeleton UI | A lightweight UI component library built on top of Tailwind CSS | skeleton.dev |
Chart.js | Simple, flexible JavaScript charting library for data visualization | chartjs.org |
Basic understanding of JavaScript/TypeScript
Basic SQL knowledge
Basic familiarity with the command line interface (CLI)
Detailed step-by-step instructions for setting up the environment, database configuration, migrations, and running the project are provided in the /tutorial
folder.
Please visit the tutorial README to get started.
Contributions, suggestions, and bug reports are welcome! Please:
git checkout -b feature/your-feature
) git commit -m 'Add some feature'
) git push origin feature/your-feature
) For major changes, please open an issue first to discuss what youβd like to change.
This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0).
See LICENSE.md for details or contact me using the contact information listed on my GitHub profile.