{"id":27612803,"url":"https://github.com/lauslim12/asuna","last_synced_at":"2025-09-13T03:32:38.037Z","repository":{"id":41129313,"uuid":"334407736","full_name":"lauslim12/Asuna","owner":"lauslim12","description":"🏢 Project Asuna is a scalable, brand-ready, and open-source building management system. Built for research!","archived":false,"fork":false,"pushed_at":"2022-11-15T13:12:37.000Z","size":22777,"stargazers_count":42,"open_issues_count":0,"forks_count":9,"subscribers_count":1,"default_branch":"lumine","last_synced_at":"2025-06-03T11:23:52.359Z","etag":null,"topics":["building-management","chakraui","expressjs","heroku","javascript","mongodb","nextjs","vercel"],"latest_commit_sha":null,"homepage":"https://asuna.vercel.app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lauslim12.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-01-30T12:29:45.000Z","updated_at":"2024-11-20T10:12:55.000Z","dependencies_parsed_at":"2022-09-07T20:21:51.517Z","dependency_job_id":null,"html_url":"https://github.com/lauslim12/Asuna","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lauslim12/Asuna","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lauslim12%2FAsuna","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lauslim12%2FAsuna/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lauslim12%2FAsuna/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lauslim12%2FAsuna/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lauslim12","download_url":"https://codeload.github.com/lauslim12/Asuna/tar.gz/refs/heads/lumine","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lauslim12%2FAsuna/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274914937,"owners_count":25373188,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-13T02:00:10.085Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["building-management","chakraui","expressjs","heroku","javascript","mongodb","nextjs","vercel"],"created_at":"2025-04-23T01:56:43.370Z","updated_at":"2025-09-13T03:32:38.014Z","avatar_url":"https://github.com/lauslim12.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Asuna\n\nProject Asuna is an open-source, scalable, 'brand-ready', and user-friendly building management system. This full-stack web application is open-source, under MIT License, and the research about this is published in a free-for-all, strictly non-commercial open-access academic journal about science and technology.\n\n**Research Paper: [Scalable Building Management System for Offices and Co-Working Spaces (2021)](http://www.ashwinanokha.com/resources/ijeb%20v20-2-30.%20Ijeb.pdf).**\n\n![screenshot](./assets/screenshot.png)\n\n## Disclaimer\n\nProject Asuna is **strictly non-commercial** and is used for **education and academic research purposes only**. You can use this as a base if you want to create a scalable system with the accompanying tech stack, but please do not use this project 'as it is' in your production scenarios. All of the assets in this website are dummy data and dummy assets, and all rights reserved to their original owners of the assets.\n\n## Abstract\n\nCo-working spaces and offices are two of the most growing and essential businesses in Asian countries. Several factors contribute to the development of this business, such as the offered interiors, facilities, events, etc. However, the most important factor for the development of this business is the community itself, as it can generally result in a collaborative environment where one could collaborate or assist each other. In this research, we implement a highly scalable and flexible information system for offices and co-working spaces building management. This research also encompasses creating a friendly user interface that conforms to the Eight Golden Rules. Several cutting-edge technologies, such as Next.js, Chakra UI, Express.js, Mongo DB, Vercel, and Heroku, are used in the development phase of this system. The prototype built then is tested by using Technology Acceptance Model. We got a satisfactory result, where most respondents claimed that the system could be used in production phase due to its ease of use, performance, and simplicity to manage the business process. It is also proven that scalability will not be a problem when using this system because the technologies used are always ready to be scaled.\n\n**Keywords**: Building Management System, co-working spaces, cutting-edge technologies, offices, Technology Acceptance Model.\n\n## Introduction\n\nCoworking space is one of the newest business trends in Indonesia and Asian countries in general (Bouncken, 2016). One of the most important metric that we have to understand in order for these kinds of business to flourish is the community of the coworking space. People enjoy coworking spaces with great facilities and good communities (Seo, 2017). If handled correctly, coworking space could make people feel connected to one another and cause them to enjoy the environment, and even create new social circles along the way (Bianchi, 2018).\n\nThere have not been a single application to manage these coworking spaces with extremely flexibility. In this application, flexibility means the ability for one to create _n_ rooms and floors, where _n_ itself means infinite. In short, this application is an open-source building management system that allows one to create infinite number of rooms and floors for their own buildings. Users of this application could also place their orders online, shall this application comes to the production version.\n\nNot only built with performance and scalability in mind, this research also encompasses on how to create a friendly user interface to create a simple personal brand. We use assets and brands in order to showcase an example of the previous statement.\n\n## Tech Stack\n\n- JavaScript (programming language)\n- Next.js (front-end)\n- Chakra UI (front-end framework)\n- Express.js (back-end)\n- MongoDB (Atlas) (database, and database on cloud)\n- Vercel (front-end hosting)\n- Heroku (back-end hosting)\n- GitHub Actions (CI/CD)\n\n## Features\n\n- Simple, colorful, but intuitive UI. This is subjective and differs according to the reader's interpretation.\n- Ability to create infinite amount of rooms and floors. Only the reader's database size limits the number.\n- Users can book a room, edit their own profile, and see their transactions.\n- Multiple role support: user, admin, owner.\n- Admins can perform CRUD operations on floors, rooms, employees.\n- Admins can manage the available orders from the users. An admin can change the status or cancel an available order.\n- Admins can see the earnings of the lifetime of this application.\n- Admins can create visitors via an interface in the admin panel.\n- Admins can create vouchers via API endpoints.\n- Dark mode support for the front-end.\n- High-performance support with pre-loaded pages, image lazy-loading, and caching.\n- Server-side rendering support for pages requiring authentication.\n- API-proxy via Next.js's serverless functions to provide extended security.\n- Personal and secure authentication utilizing httpOnly / sameSite cookies and JWT (stateless but secure).\n- Accessibility support (`a11y`).\n\n## Requirements\n\n- [Node.js 14+](https://nodejs.org/)\n- [Yarn 1.22+](https://yarnpkg.com/)\n- [MongoDB Atlas](https://www.mongodb.com/)\n\n## Installation\n\nTo use this repository, both front-end and back-end must be active simultaneously. We will describe on how to set up each parts. As an initial setup, please clone the repository first.\n\n- Clone the repository first.\n\n```bash\ngit clone https://github.com/lauslim12/Asuna.git\ncd Asuna\n```\n\nFor the next steps, it is assumed that your working directory is `Asuna`, the root directory of this repository.\n\n### Web Setup\n\n- Switch to the `web` directory.\n\n```bash\ncd web\n```\n\n- Then, we have to fill the environment variables for both `web` and `api`. For the `web`, the settings are as follows.\n\n```bash\nexport JWT_COOKIE_EXPIRES_IN=\u003cYOUR_VARIABLE\u003e\nexport PRIVATE_API_URL=\u003cYOUR_VARIABLE\u003e\nexport NEXT_PUBLIC_API_URL=\u003cYOUR_VARIABLE\u003e\n```\n\n- Alternatively, you can change the `.env.development` file and set the variables from there. Don't forget to rename it to `.env.local` so that it can be used.\n\n```bash\nnano .env.development\nmv .env.development .env.local\n```\n\n- Install the website!\n\n```bash\nyarn --frozen-lockfile\n```\n\n- Start the website in development mode.\n\n```bash\nyarn dev\n```\n\n- Start the website in production mode.\n\n```bash\nyarn build\nyarn start\n```\n\n### API Setup\n\n- You need to spawn another terminal process. Change to the `api` directory.\n\n```bash\ncd api\n```\n\n- For the `api`, the environment variables that you need to fill are as follows.\n\n```bash\nexport CLIENT_SIDE_URL=...\nexport DATABASE= # this has to be your 'complete URL string' - complete with username, password, and database name\nexport JWT_SECRET=\nexport JWT_EXPIRES_IN=\nexport JWT_COOKIE_EXPIRES_IN=\n```\n\n- Or, same as above, change the `.env.development` file and rename it to `.env`.\n\n```bash\nnano .env.development\nmv .env.development .env\n```\n\n- Then, we can just install the application.\n\n```bash\nyarn --frozen-lockfile\n```\n\n- Before starting our API, we migrate the database first with dummy data.\n\n```bash\nyarn migrate\n```\n\n- Start our API. Remember we need two terminal processes, one for web, and one for API!\n\n```bash\nyarn dev\n```\n\n- Or you can also start the API in production mode.\n\n```bash\nyarn start\n```\n\nYou're totally done! Open `http://localhost:3001` for the web frontend, and `http://localhost:3000` for the API backend.\n\n## Deployment\n\nGitHub Actions have already been set in this repository to implement the CI/CD part of the web application. It will deploy the frontend to [Vercel](https://vercel.com/), and will deploy the backend to [Heroku](https://www.heroku.com/).\n\n## Updating\n\nTo update the dependencies, you can run the following commands in both `api` and `web`.\n\n```bash\nyarn outdated\nyarn upgrade-interactive --latest\n```\n\n## Contribution\n\nI accept all kinds of contributions. Feel free to submit a pull request or submit an issue if you encounter any issues!\n\n## License\n\nThis application is licensed under MIT License, and the research paper is under Creative Commons. For the application's license, please see the `LICENSE` file for more information.\n\n## Acknowledgements\n\nIn some parts of the website, we use assets from Unsplash and Genshin Impact (for the room picture only) in order to make a user-friendly interface and as an example on how to implement a simple personal brand (two topics that we also investigate and research here, as stated above). All rights reserved to their respective owners. We have both acknowledged and cited all of the assets' respective owners in the research paper and in this repository properly.\n\n## References\n\nFollowing are the scholarly references for this research project.\n\n- Alsaqqa, S., Sawalha, S., \u0026 Abdel-Nabi, H. (2020). Agile Software Development: Methodologies and Trends. International Journal of Interactive Mobile Technologies (IJIM), 14(11), 246–270. \u003chttps://doi.org/10.3991/ijim.v14i11.13269\u003e\n\n- Aottiwerch, N., \u0026 Kokaew, U. (2017). Design Computer-assisted Learning in an Online Augmented Reality Environment based on Shneiderman’s Eight Golden Rules. 2017 14th International Joint Conference on Computer Science and Software Engineering (JCSSE), 1–5. \u003chttps://doi.org/10.1109/JCSSE.2017.8025926\u003e\n\n- Bianchi, F., Casnici, N., \u0026 Squazzoni, F. (2018). Solidarity as a Byproduct of Professional Collaboration: Social Support and Trust in a Coworking Space. Social Networks, 54, 61–72. \u003chttps://doi.org/10.1016/j.socnet.2017.12.002\u003e\n\n- Bouncken, R. B., Clauss, T., \u0026 Reuschl, A. (2016). Coworking-spaces in Asia: A Business Model Design Perspective. SMS Special Conference Hong Kong 2016.\n\n- Bouncken, R. B., Laudien, S. M., Fredrich, V., \u0026 Görmar, L. (2018). Coopetition in Coworking-Spaces: Value Creation and Appropriation Tensions in an Entrepreneurial Space. Review of Managerial Science, 12(2), 385–410. \u003chttps://doi.org/10.1007/s11846-017-0267-7\u003e\n\n- Davis, F. D. (1989). Perceived Usefulness, Perceived Ease of Use, and User Acceptance of Information Technology. MIS Quarterly, 13(3), 319–340. \u003chttps://doi.org/10.2307/249008\u003e\n\n- Dhammayanti, K., Wicaksana, A., \u0026 Hansun, S. (2019). Position Placement DSS Using Profile Matching and Analytical Hierarchy Process. International Journal of Scientific \u0026 Technology Research, 8(11), 204– 207. \u003chttp://www.ijstr.org/final-print/nov2019-Position-Placement-Dss-Using-Profile-Matching-AndAnalytical-Hierarchy-Process.pdf\u003e\n\n- Gonçalves, L. (2018). Scrum: The Methodology to Become More Agile. Controlling \u0026 Management Review, 62(4), 40–42. \u003chttps://doi.org/10.1007/s12176-018-0020-3\u003e\n\n- Hansun, S. (2013). A new approach of moving average method in time series analysis. 2013 Conference on New Media Studies (CoNMedia), 1–4. \u003chttps://doi.org/10.1109/CoNMedia.2013.6708545\u003e\n\n- Hansun, S., \u0026 Suryadibrata, A. (2021). Gold Price Prediction in COVID-19 Era. International Journal of Computational Intelligence in Control, 13(2). \u003chttps://www.mukpublications.com/ijcic-v13-2-2021.php\u003e\n\n- heroku.com. (n.d.). Heroku. Retrieved June 22, 2021, from \u003chttps://www.heroku.com/\u003e\n\n- Hidalgo, E. S. (2019). Adapting the Scrum Framework for Agile Project Management in Science: Case Study of a Distributed Research Initiative. Heliyon, 5(3), e01447. \u003chttps://doi.org/10.1016/j.heliyon.2019.e01447\u003e\n\n- Khalid, A., Butt, S. A., Jamal, T., \u0026 Gochhait, S. (2020). Agile Scrum Issues at Large-Scale Distributed Projects. International Journal of Software Innovation, 8(2), 85–94. \u003chttps://doi.org/10.4018/IJSI.2020040106\u003e\n\n- Mittal, A. (2013). E-commerce: It’s Impact on Consumer Behavior. Global Journal of Management and Business Studies, 3(2), 131–138. \u003chttps://www.ripublication.com/gjmbs_spl/gjmbsv3n2spl_09.pdf\u003e\n\n- Nugraha, A., \u0026 Hansun, S. (2020). Fiturebot: CS Chatbot Application using Nazief-Adriani Algorithm. International Journal of Emerging Trends in Engineering Research, 8(2), 350–354. \u003chttps://doi.org/10.30534/ijeter/2020/18822020\u003e\n\n- Seo, J., Lysiankova, L., Ock, Y.-S., \u0026 Chun, D. (2017). Priorities of Coworking Space Operation Based on Comparison of the Hosts and Users’ Perspectives. Sustainability, 9(8), 1494. \u003chttps://doi.org/10.3390/su9081494\u003e\n\n- Sharma, A., Thung, F., Kochhar, P. S., Sulistya, A., \u0026 Lo, D. (2017). Cataloging GitHub Repositories. Proceedings of the 21st International Conference on Evaluation and Assessment in Software Engineering, 314– 319. \u003chttps://doi.org/10.1145/3084226.3084287\u003e\n\n- Srivastava, A., Bhardwaj, S., \u0026 Saraswat, S. (2017). SCRUM Model for Agile Methodology. 2017 International Conference on Computing, Communication and Automation (ICCCA), 864–869. \u003chttps://doi.org/10.1109/CCAA.2017.8229928\u003e\n\n- Vercel. (2021). Next.js on Vercel. \u003chttps://vercel.com/docs/next.js/overview\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flauslim12%2Fasuna","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flauslim12%2Fasuna","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flauslim12%2Fasuna/lists"}