{"id":27650833,"url":"https://github.com/codex-0915/expresswayjs--prototype","last_synced_at":"2025-04-24T03:48:30.531Z","repository":{"id":270054464,"uuid":"850507821","full_name":"codex-0915/expresswayjs--prototype","owner":"codex-0915","description":"Express way of using MVC framework for Express.js","archived":false,"fork":false,"pushed_at":"2024-12-28T02:59:05.000Z","size":18,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-23T05:24:50.302Z","etag":null,"topics":["expressjs","javascript","jsframework","mvc-architecture"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codex-0915.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-01T01:12:22.000Z","updated_at":"2025-03-23T03:05:23.000Z","dependencies_parsed_at":null,"dependency_job_id":"52358911-3050-4195-bd86-847156dd3410","html_url":"https://github.com/codex-0915/expresswayjs--prototype","commit_stats":null,"previous_names":["codex-0915/expresswayjs"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codex-0915%2Fexpresswayjs--prototype","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codex-0915%2Fexpresswayjs--prototype/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codex-0915%2Fexpresswayjs--prototype/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codex-0915%2Fexpresswayjs--prototype/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codex-0915","download_url":"https://codeload.github.com/codex-0915/expresswayjs--prototype/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250560006,"owners_count":21450168,"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","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":["expressjs","javascript","jsframework","mvc-architecture"],"created_at":"2025-04-24T03:48:30.002Z","updated_at":"2025-04-24T03:48:30.530Z","avatar_url":"https://github.com/codex-0915.png","language":"JavaScript","readme":"# Expressway.js\n\n_Express way of using MVC for Express.js_\n\n## Description\n\nThis is a simple, lightweight, and in express way of building MVC framework on top of Express.JS\n\n## File Structure\n\n**Models** - This folder will contain your application's data models, which typically interact with the database. Each file corresponds to a different data entity (e.g., userModel.js, productModel.js).\n\n**Views** - The views folder holds your application's presentation logic, usually in the form of HTML templates. These templates are rendered by the server and sent to the client.\n\n**Controllers** - Controllers act as intermediaries between the model and view, handling user input and updating the view or model as necessary.\n\n**Assets** - This folder is where you store static files such as images, CSS stylesheets, JavaScript scripts, and other assets like logos.\n\n**app.js** - This is the main entry point of your application. It initializes the Express server, configures middleware, and starts the server.\n\n**config.js** - This file stores configuration settings such as database credentials, API keys, and server port.\n\n**routes.js** - This file defines the routing logic for your application. It maps URLs to controllers and actions.\n\n### Sample Project Structure\n\n```\n/your-project-name\n|-- /assets\n|   |-- /images\n|   |-- /styles\n|   |   |-- main.scss\n|   |   |-- _variables.scss\n|   |   |-- _mixins.scss\n|   |-- /scripts\n|\n|-- /controllers\n|   |-- userController.js\n|\n|-- /models\n|   |-- userModel.js\n|\n|-- /views\n|   |-- index.ejs\n|   |-- login.ejs\n|   |-- register.ejs\n|\n|-- app.js\n|-- config.js\n|-- routes.js\n|-- package.json\n|-- README.md\n```\n\n## TODO\n\n### Plans\n\n#### General Tasks\n\n- [ ] Add a sample home page (view page with good design) when starting to run the framework app\n- [ ] Create a sample application (simple small project?)\n- [ ] Add a database (sample working, maybe MongoDB)\n- [ ] Add getting started on README file\n- [ ] Add environment variables\n- [ ] Create convention on controller and model file names (use RoR convention as guide)\n- [ ] Create a CLI command for generating or automating the creation of the model, controller, etc\n- [x] Run project using 'npm run dev' instead of 'node app.js'\n- [ ] Add TailwindCSS and Bootstrap for styling\n- [ ] Run on TypeScript\n\n#### Loading of View File\n\n- [x] have app.js load the routes.js\n- [x] have routes.js load the appropriate controllers\n- [ ] have the respective controller load the appropriate models\n- [x] have the respective controller load the appropriate view file\n\n#### Adding a Database\n\n- [ ] Setting up the database (maybe MongoDB)\n- [ ] Adding environment variable and example .env file on the project\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodex-0915%2Fexpresswayjs--prototype","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodex-0915%2Fexpresswayjs--prototype","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodex-0915%2Fexpresswayjs--prototype/lists"}