Antiquify is a full-stack web application for exploring and managing historical artifacts. The platform enables users to discover ancient treasures like the Rosetta Stone and Antikythera Mechanism, contribute their findings, and engage with history enthusiasts through an interactive interface.
- Frontend: Antiquify Live
- React.js (with Vite)
- TailwindCSS + DaisyUI + Flowbite
- Firebase Authentication
- Axios with Interceptors
- React Query for data fetching
- React Router DOM v6
- Node.js & Express.js
- MongoDB with Mongoose
- JWT Authentication
- Cookie Parser
- CORS enabled
- Environment variables with dotenv
-
Authentication
- Firebase integration
- Protected routes
- JWT token management
- Persistent login state
-
User Interface
- Responsive design
- Dynamic page titles
- Loading states
- Toast notifications
- Custom error pages
-
Artifact Management
- CRUD operations
- Image upload
- Like/unlike system
- Personal collections
-
Security
- JWT authentication
- HTTP-only cookies
- CORS configuration
- Environment variable protection
-
API Endpoints
- RESTful architecture
- Artifact CRUD operations
- User management
- Like system handling
-
Database
- MongoDB integration
- Efficient queries
- Data validation
- Error handling
{
"dependencies": {
"@tanstack/react-query": "^5.8.4",
"axios": "^1.6.2",
"firebase": "^10.6.0",
"react": "^18.2.0",
"react-router-dom": "^6.19.0",
"react-hot-toast": "^2.4.1",
"daisyui": "^4.4.2"
}
}
{
"dependencies": {
"express": "^4.18.2",
"mongodb": "^6.3.0",
"jsonwebtoken": "^9.0.2",
"cookie-parser": "^1.4.6",
"cors": "^2.8.5",
"dotenv": "^16.3.1"
}
}
# Clone repository
git clone https://github.com/omarFaruk99/Antiquify-Client
# Install dependencies
cd antiquify-client
npm install
# Set up environment variables
# Create .env.local with:
VITE_FIREBASE_API_KEY=your_key
VITE_AUTH_DOMAIN=your_domain
VITE_API_URL=http://localhost:5173
# Start development server
npm run dev
# Clone repository
git clone https://github.com/omarFaruk99/Antiquify-Server
# Install dependencies
cd antiquify-server
npm install
# Set up environment variables
# Create .env with:
PORT=3000
DB_USER=your_mongodb_user
DB_PASS=your_mongodb_password
ACCESS_TOKEN_SECRET=your_jwt_secret
# Start server
npm run dev
POST /jwt
: Generate JWT tokenPOST /logout
: Clear authentication
GET /artifacts
: Get all artifactsGET /artifacts/top
: Get top 6 artifactsGET /artifacts/details/:id
: Get single artifactPOST /artifacts
: Create new artifactPUT /artifacts/update/:id
: Update artifactDELETE /artifacts/:id
: Delete artifactPUT /artifacts/:id/like
: Toggle artifact like
This project is licensed under the MIT License.