This contains the backend for Sharing the Past and an admin panel that allows Ararat Plain Southeast Archaeological Project (APSAP) team members to manage the app.
Create and manage content with data validation to share with all app users
Sort and filter data with the search bar and intuitive table UI
Attach images and 3D models to make the content more attractive
Edit table headers for search convenience
-
Clone this project to your local environment
git clone "https://github.com/Humen-debug/XR-archaeology-server.git" -
Configure the
yarnsetting ofignore-enginesto betrue, if the version of yarn is 1.yarn preinstall
-
Create a MongoDB instance on the local host
yarn devMongo
-
Start
mongoshcommandmongosh
Important
If it is your first time to initiate a MongoDB for the server, run
rs.initiate()
-
(Optional) Create an admin
yarn admin
-
Start the test servers. By default, the servers for admins and app users will be listening on http://localhost:3001 and http://localhost:3002 respectively
yarn server:start
-
Start the front-end admin panel. By default, the website will be running on http://localhost:3000
yarn dev
Tip
If you want to expose your servers to the internet such that the application can access your data, run
yarn public
| Server | URL |
|---|---|
| Public (app users) server | https://tests-server.serveo.net/ |
| Internal (admins) server | https://admin-tests-server.serveo.net/ |
| Front-end CMS | https://apsap-tests-server.serveo.net |
Details
Log on using credentials set in
.env(ME_CONFIG_BASICAUTH_USERNAME,ME_CONFIG_BASICAUTH_PASSWORD)
- Create the Mongodb container and start running the server
yarn build- Log on to Mongo Express and go to http://localhost:8081/
yarn start- Log on to Mongo Express and go to http://localhost:8081/
Details
├── components: our customized UI components
├── config.json: website configuration settings
├── contexts: our React contexts/providers
├── layouts: wrappers of pages
├── pages: the content of different web pages
├── plugins: our customized plugins
├── public: static assets
├── server
│ ├── api
│ │ ├── public: APIs for the app users
│ │ └── services: APIs for the admin users of CMS
│ ├── db: database schema
│ ├── feathers: plugins for Feathers.js to automate CRUD operations and query APIs
│ └── utils
├── styles
└── types: declaration files
Front-end
- React - Frontend framework for creating reusable components
- React-dom - Package serves as the entry point to the DOM for React
- React-i18next - Internationalization framework for
ReactandReact Native - Next.js - React framework for the web
- Tailwind CSS - Utility-first CSS framework
Back-end
- Feathers.js - Framework for creating APIs and real-time application
- Express.js - Node.js web application framework for building RESTful APIs
- MongoDB - Open-source non-relational database
- Mongoose - Library offering built-in type casting, validation, query building to model MongoDB data
- Multer- Node.js middleware for handling
multipart/form-data, which is primarily used for uploading files - Sharp - Library for Node.js image processing
- Bcrypt.js - Library for hashing passwords securely
- Moment.js - Parse, validate, manipulate and display dates and times
- Lodash - Utility library for improving modularity and performance
- Webpack - Module bundler to bundle files in a browser



