Noor is a Islam Learning and Practicing Companion platform. It's a dream of mine where people can learn and know more about beauty of Islam. InshaAllah I will complate this soon.
MIT License
Welcome to Noor, a fullstack Islamic app built with Next.js, Framer Motion, Tailwind CSS, and Shadcn UI. Noor offers a clean and minimal interface with daily prayer times, Quran recitation, Islamic articles, and a personalized dashboard. Designed for modern users, Noor provides smooth, subtle animations and a fully responsive design for a delightful user experience.
To run this project, you need to have the following installed:
Clone the repository:
git clone https://github.com/mdsabbiralmamon/noor-app.git
cd noor-app
Install dependencies:
npm install
or
bun install
Set up environment variables:
Create a .env.local
file in the root directory with the following environment variables:
NEXTAUTH_URL=http://localhost:3000
MONGODB_URI=your-mongodb-uri
NEXTAUTH_SECRET=your-secret-key
Run the development server:
npm run dev
or
bun run dev # For node
bun --bun run dev # For Bun
Open http://localhost:3000 in your browser to view the app.
To deploy this project on Vercel:
.env.local
file.├── src/ # Source folder for all project code
│ ├── app/ # Next.js App Directory (routing system)
│ │ ├── blog/ # Articles and duas pages
│ │ │ └── page.tsx # Main articles page
│ │ ├── dashboard/ # Dashboard pages for authenticated users
│ │ │ └── page.tsx # Main dashboard page
│ │ ├── quran/ # Quran-related pages and routes
│ │ │ └── page.tsx # Quran main page (list of surahs)
│ │ ├── prayer-times/ # Prayer times-related pages and routes
│ │ │ └── page.tsx # Prayer times main page
│ │ ├── globals.css # Global CSS File
│ │ ├── icon.png # Default fav icon for the app
│ │ ├── layout.tsx # Default layout component for the app
│ │ └── page.tsx # Home page (default route)
│ │
│ ├── apis/ # API route handlers
│ │ ├── auth/ # Authentication API handlers (e.g., login, registration)
│ │ └── prayerTimes/ # API for fetching prayer times from a third-party service
│ │
│ ├── components/ # Reusable UI components
│ │ ├── home/ # Home Page Specific Components
│ │ ├── shared/ # Shared components (header, footer, etc.)
│ │ ├── ui/ # Reusable UI elements (buttons, inputs, etc.)
│ │ └── animations/ # Framer Motion animation wrappers
│ │
│ ├── features/ # Feature-specific components
│ │ ├── quran/ # Quran components (surah card, recitation, etc.)
│ │ ├── prayer-times/ # Components related to prayer times
│ │ └── dashboard/ # Components for user dashboard features
│ │
│ ├── hooks/ # Custom React hooks
│ │ └── useAuthData.tsx # Hook for managing and accessing authentication data
│ │
│ ├── services/ # API service functions (e.g., fetching prayer times)
│ │ └── prayerTimes.tsx # Logic for fetching and formatting prayer time data
│ │
│ ├── context/ # Global state management with React Context
│ │ └── AuthContext.tsx # Authentication context and provider
│ │
│ └── lib/ # Utility functions and helpers
│ ├── utils.ts # Merging tailwind and shadcn
│ └── authUtils.tsx # Utility functions for authentication
│
├── public/ # Public directory for static assets
│ ├── images/ # Folder for images
│ │ ├── logo.png # Example image file
│ │ └── icons/ # Folder for icon images
│ └── robots.txt # File for search engine crawling instructions
│
├── .env.local # Environment variables (API keys, secrets)
├── tailwind.config.ts # Tailwind configuration
├── next.config.mjs # Next.js configuration
├── package.json # Project metadata and dependencies
├── README.md # Project documentation
└── .gitignore # Files and directories to ignore in version control
Contributions are welcome! To contribute:
git checkout -b feature/your-feature
.git commit -m 'Add new feature'
.git push origin feature/your-feature
.This project is licensed under the MIT License. See the LICENSE file for details.
For any questions or feedback, feel free to reach out: