Interactive historical atlas of Ethiopia featuring regions, rulers, battles, notable people, and historical places. Built with Node.js, Express, MongoDB, and vanilla JavaScript.
ethiopian history, ethiopian atlas, african history app, historical maps ethiopia, ethiopian rulers, ethiopian battles timeline, amhara history, tigray history, oromo history, ancient ethiopia, axum empire history, zemen ethiopia, ethiopian heritage, east african history, historical places ethiopia, ethiopian kings and queens
- Overview
- Features
- Tech Stack
- Installation
- Usage
- API Documentation
- Project Structure
- Screenshots
- Contributing
- License
Zemen Atlas is a comprehensive digital platform dedicated to preserving and showcasing Ethiopia's rich historical heritage. From ancient kingdoms and legendary rulers to pivotal battles and cultural landmarks, this interactive atlas provides:
- Interactive maps of historical regions
- Detailed profiles of Ethiopian rulers and emperors
- Chronological battle timelines
- Biographies of notable historical figures
- Database of historical places and landmarks
- Cultural heritage e-commerce store
The name "Zemen" (ዘመን) means "era" or "generation" in Amharic, reflecting our mission to connect generations through Ethiopia's storied past.
- Regions - Explore Ethiopia's historical regions and territories
- Rulers - Browse kings, queens, and emperors with their reign periods
- Battles - Discover pivotal military engagements in Ethiopian history
- People - Learn about influential figures who shaped the nation
- Places - Visit historical sites, monuments, and cultural landmarks
- Chronological visualization of historical events
- Filter by era, region, or category
- Cross-referenced with rulers and battles
- Interactive historical maps
- Geographic visualization of territorial changes
- Location-based historical exploration
- JWT-based user authentication
- Personalized user profiles with location
- Order history and e-commerce integration
- Ethiopian historical books, artifacts, and cultural items
- Shopping cart functionality
- Secure checkout process
- Node.js - JavaScript runtime
- Express.js - Web application framework
- MongoDB - NoSQL database
- Mongoose - MongoDB ODM
- JWT - JSON Web Token authentication
- bcrypt - Password hashing
- CORS - Cross-origin resource sharing
- HTML5 - Semantic markup
- CSS3 - Styling and responsive design
- Vanilla JavaScript - ES6+ features
- Fetch API - HTTP requests
- Git - Version control
- npm - Package management
- Environment Variables - Configuration management
- Node.js (v18 or higher)
- MongoDB (local or Atlas)
- npm or yarn
git clone https://github.com/yoni-crypto/Zemen-Atlas.git
cd Zemen-Atlascd backend
npm installCreate a .env file:
PORT=5000
MONGODB_URI=mongodb://localhost:27017/zemen-atlas
JWT_SECRET=your_jwt_secret_key_hereStart the development server:
npm start
# or
node server.jscd frontend
# Serve using any static server (Live Server, http-server, etc.)
# Example with npx
npx http-server -p 3000Or simply open frontend/index.html in your browser.
POST /api/auth/signup- Register new userPOST /api/auth/login- Login existing userGET /api/auth/me- Get current user profile
GET /api/regions- List all regionsGET /api/rulers- List all rulersGET /api/battles- List all battlesGET /api/people- List all notable peopleGET /api/places- List all historical placesGET /api/timeline- Get chronological timeline
GET /api/products- List all productsPOST /api/orders- Create new order (auth required)GET /api/orders- Get user order history (auth required)
Zemen-Atlas/
├── backend/
│ ├── models/ # Mongoose schemas
│ │ ├── Battle.js
│ │ ├── Order.js
│ │ ├── Person.js
│ │ ├── Place.js
│ │ ├── Product.js
│ │ ├── Region.js
│ │ ├── Ruler.js
│ │ └── User.js
│ ├── server.js # Express app entry point
│ ├── seed.js # Database seeding
│ └── package.json
│
├── frontend/
│ ├── auth/ # Authentication UI
│ ├── cart/ # Shopping cart
│ ├── data/ # Static JSON data
│ ├── detail/ # Detail views
│ ├── history/ # History/timeline views
│ ├── map/ # Map visualization
│ ├── orders/ # Order management
│ ├── store/ # E-commerce store
│ └── index.html
│
├── README.md
└── LICENSE
Contributions are welcome. This is an open-source project dedicated to Ethiopian historical preservation.
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR-USERNAME/Zemen-Atlas.git - Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- Historical data accuracy and expansion
- Additional language support (Amharic, Tigrinya, Oromo, etc.)
- Historical image contributions
- Bug fixes and performance improvements
- New features and enhancements
This project is licensed under the MIT License - see the LICENSE file for details.