Engaging preschool learning resources! ✨
Mini Minds is a platform designed to connect educators and parents with preschool learning resources. 🔍
- 🎨 Colorful, Kid-Friendly Interface
- 🧩 Resource Discovery - Easily find learning materials by subject, type, and age group
- 📤 Content Sharing - Educators can contribute their own resources to the community
- 🗓️ Drag-and-Drop Calendar - Admins can easily reorder and update event dates directly on the calendar.
- 👑 Role-Based Access - Different capabilities for Users, Admins, and Super Admins
- 📱 Responsive Design
- 🔐 Secure Authentication - Powered by Clerk
- Frontend: React, TypeScript, Chakra UI
- Backend: Node.js, Express
- Authentication: Clerk
- Database: PostgreSQL
- Styling: Chakra UI, Custom Theming
- Node.js (v14+)
- npm or yarn
- PostgreSQL
-
Clone the repository
git clone https://github.com/yourusername/miniminds.git cd miniminds -
Set up the backend
cd backend npm install # Set up your .env file with database and Clerk credentials # To add sample data (English, unique dates, no weekends/holidays): node scripts/add-sample-resources.js # To clear all existing data and Cloudinary images: node scripts/cleanup-resources.js npm run dev
-
Set up the frontend
cd frontend npm install # Set up your .env file with Clerk public key npm start
-
Open your browser and navigate to
http://localhost:3000🎉
- Browse through the collection of learning resources
- Filter resources by subject, type, or age group
- View detailed information about each resource
- Register and sign in to save favorites
- Create and share new learning resources
- Edit and manage your own resources
- See approval status of your submissions
- Approve or reject resource submissions
- Manage user accounts and permissions
- Access the admin dashboard for site oversight
- Node.js (v18 or higher)
- PostgreSQL database
- Clerk account for authentication
- Cloudinary account for image uploads
- Google Gemini API key for AI features
-
Clone the repository
git clone https://github.com/andrenormanlang/inl5_andre_lang.git cd miniminds -
Backend Setup
cd backend npm installCopy the environment template and fill in your values:
cp .env.example .env
Edit
backend/.envwith your actual credentials:DATABASE_URL: Your PostgreSQL connection stringCLOUDINARY_*: Your Cloudinary credentialsGEMINI_API_KEY: Your Google Gemini API keyCLERK_*: Your Clerk authentication keys
-
Frontend Setup
cd frontend bun installCopy the environment template and fill in your values:
cp .env.example .env
Edit
frontend/.envwith your actual credentials:VITE_CLERK_PUBLISHABLE_KEY: Your Clerk publishable key
-
Database Setup
cd backend npx prisma migrate deploy npx prisma generate -
Start the application
Backend (terminal 1):
cd backend npm run devFrontend (terminal 2):
cd frontend bun dev
| Service | Purpose | How to Get |
|---|---|---|
| Clerk | Authentication | clerk.com - Create account and get keys |
| Cloudinary | Image uploads | cloudinary.com - Free tier available |
| Google Gemini | AI features | Google AI Studio |
| PostgreSQL | Database | Neon or any PostgreSQL provider |
.env files to Git. Only use .env.example templates.
If you have ideas for new features or find any bugs:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Made with ❤️ for little learners everywhere 🌈