A modern examination platform built with TanStack Start and Mantine UI

README · hilmoo/elemes
ELEMES
LMS but only the exam part :D
A modern examination platform built with TanStack Start and Mantine UI
[!IMPORTANT]
This app was built solely for my course project and is not intended for production use. I developed it in about two weeks, so it may contain some bugs and has not been fully tested.
🚀 Quick Start
The easiest way to get started is using the provided DevContainer configuration:
-
Prerequisites:
-
Open in DevContainer:
- Press
Ctrl+Shift+P(orCmd+Shift+Pon Mac) - Select “Dev Containers: Clone Repository in Container Volume”
- Wait for the container to build and start
- Press
[!IMPORTANT] When running the DevContainer for the first time, you may encounter an error because the
.envfile is not yet present. Create a.envfile first inside the recovery container (you can use.env.exampleas a template).
- Start development:
npm run dev
The development server will be available at http://localhost:3000
🐳 Production Deployment
See compose.yml for the production setup.
Deploy with:
docker-compose up -d
🛠️ Development
Database Migrations
see migrate guide for details on how to manage database migrations.
Project Structure
├── src/
│ ├── components/ # Reusable UI components
│ ├── routes/ # File-based routing
│ ├── lib/ # Utilities and configurations
│ ├── mantine/ # Mantine theme customization
│ └── types/ # TypeScript type definitions
├── migrations/ # Database migrations
├── public/ # Static assets
├── .devcontainer/ # DevContainer configuration
└── scripts/ # Build and deployment scripts
📦 Tech Stack
- Framework: TanStack Start
- UI Library: Mantine
- Database: PostgreSQL
- Authentication: Better Auth
- Styling: PostCSS with Mantine
- TypeScript: Full type safety
- Package Manager: npm
📝 License
This project is open-sourced software licensed under the MIT License.
🙏 Acknowledgments
- TanStack for the amazing router and query tools
- Mantine for the beautiful UI components
- Better Auth for authentication